PHP - Menyampaikan Fungsi: Panduan untuk Pemula

Hai sana, para pengembang PHP yang sedang belajar! Hari ini, kita akan memulai perjalanan menarik ke dalam dunia menyampaikan fungsi di PHP. Jangan khawatir jika Anda masih baru dalam pemrograman - saya akan menjadi panduan yang ramah, menjelaskan segala sesuatu secara langkah demi langkah dengan banyak contoh. mari kita masuk ke dalamnya!

PHP - Passing Functions

Apa Itu Fungsi Callable?

Sebelum kita mulai, mari kita mengerti apa yang dimaksud dengan "menyampaikan fungsi." Di PHP, fungsi dapat dianggap sebagai data, yang berarti kita dapat menyampaikannya sebagai argumen ke fungsi lain. Fungsi yang dapat disampaikan ini biasanya disebut "callable" atau "callbacks."

Bayangkan Anda memiliki kotak ajaib (sebuah fungsi) yang dapat melakukan berbagai trik berdasarkan instruksi (fungsi lain) yang Anda masukkan ke dalamnya. Itu adalah esensi yang kita lakukan saat menyampaikan fungsi!

array_map(): Mengubah Array Dengan mudah

Marilah kita mulai dengan salah satu fungsi yang paling sering digunakan untuk menyampaikan callbacks: array_map().

apa yang dilakukan array_map()?

array_map() menerapkan fungsi callback ke setiap elemen array dan mengembalikan array baru dengan hasilnya.

Contoh 1: Menggandakan Angka

$numbers = [1, 2, 3, 4, 5];

$doubled = array_map(function($n) {
return $n * 2;
}, $numbers);

print_r($doubled);

Output:

Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)

Dalam contoh ini, kita menyampaikan fungsi anonymous (juga disebut closure) ke array_map(). Fungsi ini mengambil setiap angka dan mengalikannya dengan 2. Hasilnya adalah array baru dengan semua angka digandakan.

Contoh 2: Membuat Huruf Pertama Kapital

$names = ['alice', 'bob', 'charlie'];

$capitalized = array_map('ucfirst', $names);

print_r($capitalized);

Output:

Array
(
[0] => Alice
[1] => Bob
[2] => Charlie
)

Di sini, kita menyampaikan fungsi bawaan PHP ucfirst sebagai string. array_map() menerapkan fungsi ini ke setiap nama, membuat huruf pertama menjadi kapital.

call_user_func(): pisau swiss army bagi pemanggilan fungsi

call_user_func() adalah fungsi multifungsi yang memungkinkan Anda memanggil setiap fungsi callable atau metode.

Contoh 3: Memanggil Fungsi Sederhana

function greet($name) {
return "Hello, $name!";
}

$result = call_user_func('greet', 'World');
echo $result;  // Output: Hello, World!

Dalam contoh ini, kita memanggil nama fungsi ('greet') sebagai string, diikuti oleh argumen-argumen nya.

Contoh 4: Memanggil Metode dari Objek

class Greeter {
public function sayHi($name) {
return "Hi, $name!";
}
}

$greeter = new Greeter();
$result = call_user_func([$greeter, 'sayHi'], 'PHP');
echo $result;  // Output: Hi, PHP!

Di sini, kita memanggil metode dari objek. Kita menyampaikan array yang berisi objek dan nama metode nya, diikuti oleh argumen-argumen nya.

usort(): Pengurutan Khusus Dengan Callbacks

usort() adalah fungsi yang kuat yang memungkinkan Anda mengurutkan array menggunakan fungsi perbandingan khusus.

Contoh 5: Mengurutkan Array Objek

class Person {
public $name;
public $age;

public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}

$people = [
new Person('Alice', 30),
new Person('Bob', 25),
new Person('Charlie', 35)
];

usort($people, function($a, $b) {
return $a->age - $b->age;
});

foreach ($people as $person) {
echo "{$person->name}: {$person->age}\n";
}

Output:

Bob: 25
Alice: 30
Charlie: 35

Dalam contoh ini, kita mengurutkan array Person berdasarkan umur. Fungsi callback membandingkan umur dua orang dan mengembalikan nilai negatif, nol, atau positif untuk menentukan urutannya.

Menyampaikan Callbacks ke Fungsi User-defined

Sekarang kita telah melihat bagaimana fungsi bawaan PHP menggunakan callbacks, mari kita buat sendiri fungsi yang menerima callback.

Contoh 6: Membuat Fungsi Map Khusus

function myMap($array, $callback) {
$result = [];
foreach ($array as $item) {
$result[] = $callback($item);
}
return $result;
}

$numbers = [1, 2, 3, 4, 5];

$squared = myMap($numbers, function($n) {
return $n * $n;
});

print_r($squared);

Output:

Array
(
[0] => 1
[1] => 4
[2] => 9
[3] => 16
[4] => 25
)

Dalam contoh ini, kita membuat fungsi myMap sendiri yang ber perilaku mirip dengan array_map. Itu menerima array dan fungsi callback, menerapkan callback ke setiap elemen, dan mengembalikan array baru dengan hasilnya.

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dalam dunia menyampaikan fungsi di PHP. Kita telah melihat array_map(), call_user_func(), usort(), dan bahkan membuat fungsi sendiri yang menerima callbacks.

Ingat, menyampaikan fungsi adalah teknik yang kuat yang memungkinkan Anda menulis kode yang lebih fleksibel dan dapat digunakan kembali. Itu seperti memiliki pisau swiss army di alat pemrograman Anda - multifungsi dan siap untuk mengatasi tugas berbeda!

Sekarang Anda teruskan perjalanan PHP Anda, Anda akan menemukan banyak kesempatan lagi untuk menggunakan teknik ini. Terus latihan, dan segera Anda akan menjadi ahli menyampaikan fungsi!

Berikut adalah tabel referensi singkat dari fungsi yang kita diskusikan:

Fungsi Deskripsi Contoh Penggunaan
array_map() Menggunakan callback untuk semua elemen array Transformasi elemen array
call_user_func() Memanggil fungsi callable dengan parameter Memanggil fungsi atau metode secara dinamis
usort() Mengurutkan array menggunakan fungsi perbandingan khusus Pengurutan array khusus

Hati-hati coding, dan ingat - di dunia PHP, fungsi adalah teman Anda!

Credits: Image by storyset