PHP varijable : PHP Variables

Doseg vrijednosti varijable

Područje dosega varijable je dio skripte u kojem možemo koristiti varijablu. Postoje četiri različita područja dosega vrijednosti varijable:

  • Lokalno
  • Globalno
  • Statičko
  • Parametarsko

PHP i varijable

Lokalne varijable

Varijabla deklarirana unutar php funkcije ima lokalno područje dosega i može joj se pristupiti samo unutar te funkcije.

<?php 
$x = 5; // globalno područje dosega
function mojaFunkcija() {
  echo $x;	// lokalna varijabla x$
}

mojaFunkcija();
?>

Ova skripta ne će dati nikakav ispis varijable. To je zato jer se u funkciji echo $x; koristi lokalna varijabla $x kojoj nije dodijeljena nikakva vrijednost unutar ovog područja dosega.

Lokalnim varijablama se može pristupiti s istim imenom unutar različitih funkcija jer je doseg lokalnih varijabli samo unutar funkcije u kojoj su deklarirane. Vrijednost lokalne varijable se briše u trenutku kada se funkcija izvrši.

Globalne varijable

Varijabla koja je deklarirana izvan funkcije ima globalno područje dosega. Globalnim varijablama se može pristupiti u bilo koje dijelu programa, osim unutar funkcije. Želimo li globalnoj varijabli pristupiti unutar funkcije potrebno je koristiti ključnu riječ global.

<?php 
$x = 5; 	// globalno područje dosega
$y = 10; // globalno područje dosega
function mojaFunkcija() {
  global $x, $y;  // pristup globalnim varijablama unutar funkcije
  $z = $x + $y;
  echo $z;  // daje ispis 15
}

mojaFunkcija();

?>

PHP pohranjuje sve globalne varijable u polje zvano $GLOBALS. Za pristup varijabli $index unutar polja $GLOBALS koristimo pristup elementu polja $GLOBALS[index]. Ovo polje je također dostupno unutar funkcije i izravno se može koristiti za dohvat vrijednosti varijable ili njezinu promjenu.

Gornji primjer možemo napisati i na ovaj način koristeći polje $GLOBALS:

<?php 
$x = 5;   // globalno područje dosega
$y = 10;  // globalno područje dosega
$z = 0;
function mojaFunkcija() {
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];	// pristup globalnoj varijabli unutar funkcije
}

mojaFunkcija();
echo $z;	// daje ispis 15
?>

Statičke varijable

Nakon što funkcije završi izvođenje, sve njezine varijable se brišu iz memorije. Ponekad je potrebno sačuvati vrijednost varijable i nakon završetka izvođenja funkcije za sijedeći poziv iste funkcije. Kako bi to ostvarili koristimo ključnu riječ static u deklaraciji varijable.

<?php 
function mojaFunkcija() {
  static $x = 1; 	// statička varijabla
    echo ("$x <br />"); 	
  $x++;
}

mojaFunkcija();  // ispisuje 1 (nakon toga $x++)
mojaFunkcija();  // ispisuje 2 (nakon toga $x++)
mojaFunkcija();  // ispisuje 3 (nakon toga $x++)
?>

Budući da je $x statička varijabla njezina vrijednost biva sačuvana i nakon završetka funkcije. Prilikom slijedećeg poziva funkcije ona ne biva ponovo inicijalizirana nego rabimo vrijednost koju je varijabla imala posljednji put kada je funkcija pozvana.

Parametarske varijable

Parametarska varijabla je lokalna varijabla čija se vrijednost prenosi u funkciju pozivanjem kôda. Parametri su deklarirani u popisu ulaznih vrijednosti funkcije kod deklaracije funkcije.

<?php 
function mojaFunkcija($x) {
  echo $x; 	
}

mojaFunkcija(5);  // ispisuje 5
?>

Parametre nazivamo još i argumenti funkcije.