Press "Enter" to skip to content

Ruang Lingkup Variabel Pada PHP

Dalam PHP, Variabel adalah identifier (Nama atau pengenal) yang di awali oleh tanda $. Sebagai contoh:

$nama
$usia
$_debugging
$HASIL_MAKSIMUM

Kaidah Penamaan Variabel
Pada saat membuat nama variabel, anda harus mengikuti 4 aturan ini:

  1. Nama variabel harus dimulai dengan huruf alfabet atau karakter _ (underscore)
  2. Nama variabel hanya dapat berisi karakter a-z, A-Z, 0-9 dan _ (underscore)
  3. Nama variabel tidak boleh ada spasi. Jika membutuhkan lebih dari satu kata, setiap kata dipisahkan oleh karakter _ (underscore)
  4. Nama variabel case-sensitive, artinya variabel $Mercy_Oceans tidak sama dengan variabel $mercy_oceans

Tidak ada sintaks yang eksplisit untuk mendeklarasikan variabel dalam PHP, mengatur value (tipe data) kedalam variabel juga berfungsi sebagai deklarasi. Sebuah variabel yang belum diatur value-nya akan memiliki value NULL:

if ($uninitializedVariable === NULL) {
echo "Yes!";
}

Output:
Yes!

Metafora sederhana untuk memahami variabel adalah locker sekolah/kantor, pada setiap locker tertempel nama atau pengenal untuk setiap pemilik, Kemudian pemilik locker A memasukan sebuah buku berjudul “Mercy Oceans” kedalamnya. Hal ini serupa dengan menetapkan value string kepada variabel:

$LockerA = "Mercy Oceans";

Tanda kutip mengindikasikan bahwa “Mercy Oceans” adalah karakter string, dan anda harus menyertakan baik itu tanda kutip maupun tanda petik. Jika pemilik locker A ingin melihat apa yang ada didalam locker A, maka pemilik membuka locker A, mengambil buku dan membacanya. Dalam PHP hal ini akan terlihat seperti ini:

echo $LockerA; \\untuk menampilkan isi variabel gunakan echo atau print

Sebuah variabel bisa digunakan untuk menetapkan variabel lainnya:

$LockerB = $LockerA;

Variabel tidak hanya dapat berisi string, akan tetapi dapat berisi angka juga.

$LockerA = 1;

atau

$LockerA = 1.5; //Angka desimal

Variable Variables
Anda dapat mereferensikan value dari sebuah variabel yang namanya tersimpan dalam variabel lain dengan cara mendahulukan tanda $ tambahan pada variable referensi, sebagai contoh:

$foo = "bar";
$$foo = "baz"; //artinya "Variabel dari $foo yang berarti 'bar' menjadi variabel."

Jika $bar di tampilkan maka akan memiliki value "baz."
$foo = "bar";
$$foo = "baz";

echo $bar;
Hasil: "baz"

Variable Referensi

Dalam PHP, referensi adalah bagaimana anda membuat nama lain (alias) dari variabel. Untuk membuat $hitam menjadi nama lain dari variabel $gelap, gunakan:

$hitam =& $gelap;

Value terdahulu dari $hitam, jika ada, akan hilang. Sebaliknya, $hitam adalah nama lain untuk value yang tersimpan dalam $gelap:

$namaPanjangVariabel = "PHP";
$pendek =& $namaPanjangVariabel; \\ $pendek adalah alias, jika $pendek memiliki value, akan hilang.
$namaPanjangVariabel .= " rocks!"; \\menambahkan rocks!
echo nl2br("\$pendek adalah $pendek\n"); \\fungsi nl2br(\n) untuk spasi, \$pendek = escape character
echo nl2br("Panjang adalah $namaPanjangVariabel\n");

Output:
$pendek adalah PHP rocks!
Panjang adalah PHP rocks!

$pendek = "Programming $pendek";
echo nl2br("\$pendek adalah $pendek\n");
echo nl2br("Panjang adalah $namaPanjangVariabel\n");

Output:
$pendek adalah Programming PHP rocks!
panjang adalah Programming PHP rocks!

Setelah assignment, kedua variabel adalah nama-nama alternatif dari value yang sama. Unset sebuah variabel yang sudah memiliki alias tidak akan mempengaruhi value dari alias:

$putih = "salju";
$hitam =& $putih;
unset($putih);
echo $hitam;

Output:
salju

Ruang Lingkup Variabel
Ruang lingkup variabel, yang dikendalikan oleh lokasi deklarasi-variabel, menentukan bagian-bagian dari program yang dapat mengaksesnya. Ada empat jenis lingkup variabel di PHP: lokal, global, statis, dan fungsi parameter.

Lingkup Lokal
Sebuah variabel yang dinyatakan di dalam fungsi adalah lokal untuk fungsi tersebut. Artinya, variabel hanya terlihat untuk code dalam fungsi; tidak dapat diakses di luar fungsi.

Selain itu, secara default, variabel yang didefinisikan di luar fungsi (disebut global variabel) tidak dapat diakses didalam fungsi. Misalnya, berikut ini fungsi yang mengupdate variabel lokal bukan variabel global:

function updateCounter()
{
$counter++;
}
$counter = 10;
updateCounter();
echo $counter;

Output:
10

$counter didalam fungsi adalah lokal untuk fungsi itu, karena kita belum mengatakan sebaliknya. fungsi menambah variabel $counter tersendiri, yang dihancurkan ketika subrutin berakhir. $counter global masih tetap 10.

Hanya fungsi yang dapat memberikan lingkup lokal. Tidak seperti dalam bahasa lain, di PHP Anda tidak bisa membuat variabel yang ruang lingkupnya adalah loop, kondisional bercabang, atau jenis lain dari blok.

Lingkup Global
Variabel yang dideklarasikan di luar fungsi adalah global. Artinya, variabel dapat diakses dari bagian manapun dari program. Namun, secara default, mereka tidak tersedia dalam fungsi. Untuk memungkinkan fungsi mengakses variabel global, Anda dapat menggunakan kata kunci global dalam fungsi untuk mendeklarasikan variabel dalam fungsi. Berikut adalah cara kita dapat menulis ulang fungsi updateCounter() untuk memungkinkannya mengakses variabel $counter global:

function updateCounter()
{
global $counter;
$counter++;
}
$counter = 10;
updateCounter();
echo $counter;

Output:
11

Cara yang lebih praktis untuk memperbarui variabel global adalah dengan menggunakan $GLOBALS array PHP daripada mengakses variabel secara langsung:

function updateCounter()
{
$GLOBALS[counter]++;
}
$counter = 10;
updateCounter();
echo $counter;

Output:
11

Variabel Statis
Sebuah variabel statis mempertahankan value antara panggilan ke fungsi tapi hanya dapat dilihat dalam fungsi itu. Anda mendeklarasikan variabel statis dengan kata kunci statis. Sebagai contoh:

function updateCounter()
{
static $counter = 0;
$counter++;
echo "Static counter is now {$counter}\n";
}
$counter = 10;
updateCounter();
updateCounter();
echo "Global counter is {$counter}\n";

Output:
Static counter is now 1
Static counter is now 2
Global counter is 10

Fungsi Parameter
definisi fungsi dapat memiliki nama parameter:

function greet($name)
{
echo "Hello, {$name}\n";
}
greet("Janet");
Output:
Hello, Janet

Fungsi parameter adalah lokal, yang berarti bahwa mereka hanya tersedia dalam fungsi mereka.
Dalam hal ini, $name tidak dapat diakses dari luar greet().

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.