PHP - Menyusun Fungsi: Panduan untuk Pemula

Hai teman-teman pemula pengembang PHP! Hari ini, kita akan memulai perjalanan menarik ke dalam dunia menyusun fungsi di PHP. Jangan khawatir jika Anda baru belajar pemrograman - saya akan menjadi panduan teman anda, menjelaskan segala sesuatu langkah demi langkah dengan banyak contoh. mari kita masuk ke dalamnya!

PHP - Passing Functions

Apa Itu Fungsi Callable?

Sebelum kita mulai, mari kita pahami apa yang dimaksud dengan "menyusun fungsi." Di PHP, fungsi dapat dianggap sebagai data, yang berarti kita dapat menyusunnya sebagai argumen ke fungsi lain. Fungsi yang dapat disusun 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 sebenarnya apa yang kita lakukan saat menyusun fungsi!

array_map(): Mengubah Array Dengan mudah

Marilah kita mulai dengan salah satu fungsi yang paling sering digunakan untuk menyusun callback: 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 menyusun fungsi tak bernama (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 Nama Kapital

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

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

print_r($capitalized);

Output:

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

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

call_user_func(): pisau universal 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 argумент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 menyusun array yang berisi objek dan nama metode, diikuti oleh argумент.

usort(): Pengurutan Khusus dengan Callbacks

usort() adalah fungsi 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 objek Person berdasarkan umur. Fungsi callback membandingkan umur dua orang dan mengembalikan nilai negatif, nol, atau positif untuk menentukan urutan mereka.

Menyusun Callbacks ke Fungsi User-defined

Sekarang kita sudah melihat bagaimana fungsi bawaan PHP menggunakan callbacks, mari kita buat fungsi sendiri 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 menyusun fungsi di PHP. Kita telah melihat array_map(), call_user_func(), usort(), dan bahkan membuat fungsi sendiri yang menerima callbacks.

Ingat, menyusun fungsi adalah teknik 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 selalu siap menghadapi tugas berbeda!

Sebagai Anda terus melanjutkan perjalanan PHP Anda, Anda akan menemukan banyak kesempatan lagi untuk menggunakan teknik ini. Terus latih, dan segera Anda akan menjadi ahli menyusun fungsi!

Berikut adalah tabel rujukan cepat dari fungsi yang kita diskusikan:

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

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

Credits: Image by storyset