Tutorial PHP #9: Scope Variabel dan Parameter Function
1. Apa itu Scope?
Scope adalah area atau wilayah di mana sebuah variabel bisa diakses. Memahami scope sangat penting untuk menghindari bug yang membingungkan, terutama di project yang lebih besar.
2. Local Scope
Variabel yang dideklarasikan di dalam function hanya bisa diakses dari dalam function itu saja.
<?php
function tampilPesan() {
$pesan = "Ini variabel lokal"; // hanya ada di dalam function ini
echo $pesan;
}
tampilPesan(); // Output: Ini variabel lokal
echo $pesan; // ERROR! $pesan tidak dikenal di luar function
?>
3. Global Scope
Variabel yang dideklarasikan di luar function adalah variabel global. Tapi secara default, variabel global tidak bisa diakses langsung dari dalam function.
<?php
$nama = "Ariq"; // variabel global
function tampilNama() {
echo $nama; // Output: kosong / undefined! bukan "Ariq"
}
// Solusi 1: gunakan keyword global
function tampilNamaGlobal() {
global $nama; // deklarasikan dulu
echo $nama; // Output: Ariq
}
tampilNamaGlobal();
// Solusi 2 (lebih disarankan): kirim lewat parameter
function tampilNamaParam($nama) {
echo $nama;
}
tampilNamaParam($nama); // Output: Ariq
?>
Tips: Hindari terlalu banyak menggunakan global. Lebih baik kirim data lewat parameter - kode lebih bersih dan mudah di-debug.
4. Static Variable
Variabel static menyimpan nilainya antar pemanggilan function - tidak direset setiap kali function dipanggil.
<?php
function hitungPanggilan() {
static $counter = 0; // hanya diinisialisasi sekali
$counter++;
echo "Dipanggil ke-$counter <br>";
}
hitungPanggilan(); // Output: Dipanggil ke-1
hitungPanggilan(); // Output: Dipanggil ke-2
hitungPanggilan(); // Output: Dipanggil ke-3
?>
5. Parameter: Pass by Value vs Pass by Reference
Secara default, PHP mengirim nilai ke function sebagai copy (pass by value). Perubahan di dalam function tidak mempengaruhi variabel aslinya.
<?php
// Pass by value (default)
function tambahSepuluh($angka) {
$angka += 10;
echo "Dalam function: $angka"; // Output: 15
}
$nilai = 5;
tambahSepuluh($nilai);
echo "Di luar function: $nilai"; // Output: 5 (tidak berubah!)
// Pass by reference: pakai tanda &
function tambahSepuluhRef(&$angka) {
$angka += 10;
}
$nilai = 5;
tambahSepuluhRef($nilai);
echo "Setelah function: $nilai"; // Output: 15 (berubah!)
?>
6. Variabel Variabel (Variable Variables)
<?php
$varName = "nama";
$$varName = "Ariq"; // sama dengan $nama = "Ariq"
echo $nama; // Output: Ariq
echo $$varName; // Output: Ariq
?>
7. Ringkasan
- Local scope: variabel hanya bisa diakses di dalam function tempat ia dideklarasikan
- Global scope: variabel di luar function, perlu keyword
globaluntuk diakses dari dalam - Static variable: nilainya dipertahankan antar pemanggilan function
- Pass by value (default): function bekerja pada salinan data
- Pass by reference (
&): function bekerja langsung pada data asli
Tutorial berikutnya membahas array di PHP.
.jpg)
