PHP Fungsi Declaration Variadic Arrow First Class Callable
Definisi
Fungsi dideklarasi dengan function nama($param): returnType. Fitur modern: arrow function fn() => (otomatis capture $this & variabel), variadic ...$args, named arguments (PHP 8), dan first-class callable strlen(...) (PHP 8.1).
Kapan dipakai
Pakai untuk enkapsulasi logika. Arrow function cocok untuk callback pendek; variadic untuk argumen tak tentu jumlah; named arguments untuk query builder yang readable.
Cara kerja
function jumlah(int ...$nums): int {
return array_sum($nums);
}
jumlah(1, 2, 3); // 6
$double = fn($x) => $x * 2; // arrow, capture $this
$callable = strlen(...); // first-class callableStruktur alur
Loading diagram...
Catatan implementasi
- Arrow function tidak punya
returneksplisit; ekspresi langung return. - Variadic harus di posisi terakhir param.
- Named args:
foo(b: 2, a: 1)bebas urutan. - Closure vs arrow: arrow otomatis inherit scope.
Kesalahan umum
- Arrow butuh return:
fn($x) => { ... }salah; pakai ekspresi tunggal. - Variadic bukan terakhir: syntax error.
- Lupa tipe return: hilangkan keamanan.
$thisdi closure biasa: pakaiuse ($this)atau arrow.