Materi
Fungsi ditulis dengan `function nama($a, $b) { ... }` dan mengembalikan nilai dengan `return`. Fungsi tanpa return mengembalikan null. Parameter boleh punya nilai bawaan, `function ongkir($berat, $tarif = 9000)`, yang dipakai bila argumennya tidak dikirim. Tipe parameter dan nilai balik boleh ditulis: `function luas(int $p, int $l): int`.
Argumen dikirim sebagai SALINAN. Mengubah parameter di dalam fungsi tidak mengubah variabel milik pemanggil; hasilnya harus dikembalikan dengan return dan ditangkap pemanggil.
Inilah perbedaan terbesar PHP dari JavaScript: variabel yang dibuat di luar fungsi TIDAK terlihat di dalam fungsi. Manual PHP menyebut dua cakupan, cakupan global dan cakupan fungsi. Di dalam fungsi, nama variabel yang sama dengan variabel luar adalah variabel lain yang belum diisi, sehingga PHP memberi peringatan `Undefined variable` dan memakai null. Kirim nilainya sebagai parameter.
<?php
$tarifPpn = 11;
function hargaDenganPpn($harga, $tarif) {
return $harga + $harga * $tarif / 100;
}
echo hargaDenganPpn(200000, $tarifPpn); // 222000