Belajar PHP Part 38 : Variable Scope

variable scope
  • Di PHP, kita bisa membuat variable dimanapun yang kita mau
  • Scope variable adalah dibagian mana saja sebuah variable bisa di akses

PHP memiliki tiga jenis variable scope :
  1. global
  2. local
  3. static

Global Scope

  • Variable yang dibuat diluar function memiliki global scope
  • Variable di scope global hanya bisa diakses dari luar function
  • Artinya di dalam function, kita tidak bisa mengakses variable di global scope

 

$name = "Eko"; //gobal scope

function sayHello(){
    echo $name . PHP_EOL; //error
}

sayHello();
global scope

Local Scope

  • Variable yang dibuat di dalam function memiliki scope local
  • Variable di scope local hanya bisa diakses dari dalam function itu sendiri
  • Artinya variable tersebut tidak bisa diakses dari luar function ataupun dari function lain
function createName () {
    $name = "Eko"; //local scope
}

createName();
echo $name . PHP_EOL;
loca scope

Global Keyword

  • Namun jika kita ingin mengakses variable diluar function (global scope) dari dalam function, kita bisa menggunakan kata kunci global
  • Dengan menggunakan kata kunci global, maka kita bisa mengakses variable yang ada di global scope dari dalam function
$name = "Eko";

function sayHello(){
    global $name; //global keyword
    echo $name . PHP_EOL;
}

sayHello();

akses global scope dari local

$GLOBAL Variable

  • Selain menggunakan global keyword, setiap variable yang dibuat di global scope, secara otomatis akan disimpan di dalam array $GLOBAL oleh PHP
  • Jadi kita bisa menggunakan $GLOBAL variable dengan key name variable nya dari dalam function jika ingin mengakses global variable
  • $GLOBAL adalah variable yang bersifat superglobal, artinya bisa diakses dari scope manapun
$name = "Eko";

function sayHello(){
    global $name; //global keyword
    echo $name . PHP_EOL;

    var_dump($GLOBALS);
}

sayHello();

GLOBAL Variable

atau

$name = "Eko";

function sayHello(){
    global $name; //global keyword
    echo $name . PHP_EOL;

    echo $GLOBALS["name"] .  PHP_EOL;
}

sayHello();
globals key name

Static Scope

  • Secara default local variable itu siklus hidupnya  hanya sebatasa function nya dieksekusi
  • Jika sebuah function selesai dieksekusi, maka siklus hidup local variable nya selesai
  • PHP Memiliki scope bernama static
  • Static scope hanya bisa di set ke local variable
  • Saat kita membuat sebuah local variable menjadi static, maka siklus hidupnya tidak berhenti ketika sebuah function selesai dieksekusi
  • Artinya jika function tersebut dieksekusi lagi, maka static variable tersebut akan memiliki value dari sebelumnya

Siklus Local Variable

 function increment() {
    $counter = 1;

    echo "Counter = $counter" . PHP_EOL;

    $counter++;
}

increment();
increment();
increment();

siklus local variable

Siklus Static Variable

function increment() {
    static $counter = 1;

    echo "Counter = $counter" . PHP_EOL;

    $counter++;
}

increment();
increment();
increment();
siklus static variable local

Next Post Previous Post
No Comment
Add Comment
comment url