Pengertian Variabel Scope, Global Variabel dan Static Variabel
Sesuai dengan judul diatas, kali ini kita akan membahas tentang beberapa istilah terkait fungsi dalam PHP, yaitu pengertian variabel scope, global variabel dan static variabel dalam bahasa pemrograman PHP.
Dalam pemrograman PHP, selain variabel biasa yang sebelumnya telah kita bahas pada artikel http://www.plimbi.com/article/175092/menjawab-pertanyaan-seputar-variabel-php, PHP juga memiliki variabel jenis yang lain yang dinamakan dengan variabel scope yang dapat digunakan untuk dapat menangani beberapa tipe programing yang biasa digunakan oleh para developer.
Dalam PHP, variabel dapat ditulis dibagian mana saja di syntaxnya, tetapi untuk variabel scope ini ada aturan penulisannya untuk dapat menggunakannya, tapi sebelumnya kita harus tau dulu pengertian dari variabel scope. Lalu apa sih variabel scope itu? Yuk simak lagi
Pengertian Variabel Scope
Variabel scope (atau ruang lingkup variabel) adalah jangkauan kode program dimana perintah program masih bisa mengakses sebuah variabel.
Jika kita mendefinisikan sebuah variabel pada satu file PHP, maka variabel tersebut dapat diakses oleh seluruh kode program pada halaman yang sama. Namun jika variabel tersebut didefinisikan didalam sebuah fungsi, variabel itu belum tentu bisa diakses diluar fungsi tersebut. Hal inilah yang dimaksud dengan variabel scope.
Variabel yang didefinisikan didalam sebuah fungsi, secara default tidak dapat diakses oleh kode program diluar fungsi tersebut. Dan begitu juga sebaliknya, variabel yang didefinisikan diluar fungsi tidak bisa diakses dari dalam fungsi.
Berikut adalah contoh penggunaan variabel scope dalam fungsi PHP.
Perhatikan contoh diatas, pada baris ke2, kita mendefinisikan variabel $a dan memberikan nilai awal yaitu 5. Kemudian pada baris ke 4 kita membuat sebuah fungsi coba() dan mendefinisikan kembali variabel $a yang kali ini nilainya adalah 10, dan juga kita buat variabel baru yaitu $b.
Setelah memanggil fungsi coba(), kemudian kita memeriksa nilai $a dengan perintah echo. Dan ternyata nilai $a adalah 5, bukan 10. Dan ketika kita ingin mengakses variabel $b, PHP akan mengeluarkan perintah bahwa variabel $b belum didefinisikan dengan pesan error.
Hal ini terjadi karena variabel $a dan $b berada didalam fungsi coba() yang merupakan variabel yang berbeda diluar fungsi. Jangkauan variabel $a dan $b hanya berada didalam fungsi.
Dalam variabel scope ini terdapat beberapa jenis, yaitu:
1. Variabel Scope Global
Variabel scope global ini merupakan variabel yang dapat diartikan bebas untuk diakses dimana saja atau lingkup global, tetapi hal ini tidak berlaku jika terdapat didalam fungsi.
Variabel jenis ini ditulis diluar function, dan hanya dapat diakses dari luar juga (global scope), dengan kata lain tidak bisa diakses didalam function.
Namun, jika kita tetap ingin menggunakan variabel yang didefinisikan diluar fungsi dan sebaliknya, PHP memperbolehkan hal tersebut dengan menambahkan sebuah kata kunci “global†sebelum pendefinisian nama variabel.
Berikut contoh penggunaan variabel scope  global:
Program diatas tidak akan menghasilkan error seperti sebelumnya, dan kita bisa mengakses nilai variabel $a dari dalam fungsi coba(), dan nilai variabel $b diluar fungsi.
Kata kunci global lah yang membuat fungsi dapat mengakses variabel yang didefinisikan diluar fungsi.
Â
2. Variabel Scope Static
Variabel static ini adalah jenis variabel yang mempertahankan nilainya pada setiap pemanggilan fungsi. Untuk variabel normal, nilai dari variabel tersebut akan secara otomatis dihapus pada saat fungsi selesai dijalankan, dan akan dibuat ulang pada saat fungsi dipanggil.
Namun jika sebuah variabel dinyatakan sebagai static variabel, maka nilai variabel tersebut akan tetap dipertahankan walaupun fungsi telah selesai dijalankan. Biasanya fungsi ini dimanfaatkan jika kita ingin menghitung berapa kali sebuah fungsi dipanggil.
Variabel static ini merupakan jangkauan yang memanggil atau mempertahankan variabel yang telah selesai dijalankan tetapi kita masih ingin menggunakannya. Untuk membuat variabel ini kita memerlukan kata kunci “staticâ€.
Berikut adalah contoh program penggunaan variabel static:
Jika kita menghapus keyword static yang ada pada baris ke4, maka variabel $a akan selalu bernilai 1, karena terdapat operasi $a=0 dan $a=$a+1 pada setiap kali pemanggilan fungsi coba(). Namun dengan membuat $a sebagai static variabel, maka nilai dari $a akan terus dipertahankan sepanjang pemrosesan halaman oleh PHP.
Â
3. Variabel Scope Local
Variabel jenis ini adalah variabel yang ditulis didalam function PHP dan hanya dapat diakses dari dalam function tersebut. Dengan kata lain tidak bisa diakses diluar function.
Berikut contoh penggunaan variabel scope local:
Perhatikan contoh diatas, jika variabel local diakses didalam function maka nilai yang keluar adalah 5, sedangkan jika diakses diluar function maka nilai itu tidak ada.
Â
4. Variabel Scope Global Keyword
Variabel ini adalah variabel yang dapat digunakan didalam function, namun  terdapat perbedaan dalam penulisan syntaxnya, yaitu:
Terlihat diatas perbedaan syntaxnya, yaitu ada pada baris ke 6. Global keyword ini juga dapat digunakan untuk variabel yang bersifat array, berikut contohnya:
Â
5. Variabel Scope Parameter
Variabel scope adalah variabel yang nilainya dilewatkan ke fungsi dengan kode panggilan. Parameter ini merupakan bagian dari deklarasi fungsi.
Konsep pembatasan variabel scope ini memang terkesan merepotkan, namun sebenarnya sangat berguna untuk mengisolasi penggunaan agar tidak saling menimpa. Fungsi-fungsi bawaan di dalam PHP dibuat oleh berbagai programer dari seluruh dunia, dan mungkin saja kita secara tidak sengaja menggunakan nama variabel yang sama dengan nama variabel yang ada dalam salah satu fungsi tersebut dengan menerapkan variabel scope PHP agar dapat terhindar dari permasalahan tersebut.
Â