A. Scope
Scope, lifetime, visibility adalah berbagai istilah yang sama, menyatakan di mana variabel dapat digunakan dalam program. PHP mengenal dua macam scope, yaitu local dan global. Variabel local hanya dapat digunakan dalam blok tempatnya dideklarasi. Variabel global dapat digunakan di mana saja dalam program setelah dideklarasi dan diinisialisasi.
Local
Untuk lebih memahami scope local, perhatikan script di bawah :
<? function testVar(){
$a = 3;
}
echo($a); // error -- variabel $a tidak dikenali
?>
Variabel $a hanya berlaku di dalam function testVar, sehingga tidak dapat diakses di luar function.
Global
Variabel global dideklarasi di luar function dan dapat digunakan di mana saja dalam program. Variabel global tidak berlaku di dalam function kecuali dipanggil dengan keyword global. Contoh penggunaan :
<? $a = 4;
function testVar2(){
echo($a); // -- tidak menghasilkan apa-apa global $a;
echo($a); // -- menampilkan 4
}
?>
B. Passing variabel
By Value
Variabel dipassing (dimasukkan) ke dalam function dengan cara pass by value. Pass by value membuat kopi dari variabel yang asli. Dengan demikian variabel asli tidak terpengaruh. Untuk lebih jelasnya, perhatikan contoh berikut :
function tambahSatu($angka){
$angka++;
}
Function tersebut akan digunakan sebagai berikut :
<? $a = 7; tambahSatu($a);
echo("Nilai a = " . $a); ?>
kode di atas akan menghasilkan output:
Nilai a = 7
karena variabel angka yang ada dalam function berakhir umurnya pada saat function selesai dijalankan. Dan variabel a yang asli tetap bernilai 7. Untuk menghasilkan efek yang diinginkan, kita dapat menggunakan pass by reference.
By Reference
Pada pass by reference, kita memasukkan variabel yang asli ke dalam function. Teknik ini dilakukan dengan cara sebagai berikut :
function tambahSatu(&$angka){
$angka++;
}
Function tersebut akan digunakan sama seperti contoh di atas :
<? $a = 7; tambahSatu($a);
echo("Nilai a = " . $a);
?>
kode di atas akan menghasilkan output:
Nilai a = 8