Domeniul variabilelor în PHP
Poți declara o variabilă PHP oriunde într-un script, dar asta nu înseamnă că o poți folosi peste tot. Partea din script în care o variabilă este disponibilă se numește domeniul ei, iar domeniile sunt de trei feluri: local, global și static.
Domeniul global și domeniul local
Locul în care declari o variabilă îi decide domeniul. Declarată în afara unei funcții, are domeniu global și nu poate fi accesată din funcții. Declarată în interiorul unei funcții, are domeniu local și există doar pentru acea funcție.
Variabilă cu domeniu global
$x este creată în afara lui myTest(), așa că funcția nu o vede și nu afișează nicio valoare. Doar echo din afara funcției arată 5:
Ieșire: script PHP
<?php
$x = 5;
function myTest() {
echo $x;
}
myTest();
echo $x;
?>
Variabilă cu domeniu local
De data aceasta $x este creată în interiorul lui myTest(), așa că doar echo din funcție arată 5. Linia din afara funcției nu are ce afișa:
Ieșire: script PHP
<?php
function myTest() {
$x = 5;
echo $x;
}
myTest();
echo $x;
?>
Cuvântul cheie global în PHP
O funcție poate totuși să ajungă la o variabilă globală dacă ceri acest lucru. În interiorul funcției, scrie cuvântul cheie global înaintea numelor variabilelor.
Folosirea cuvântului cheie global
Cu global $x, $y; funcția lucrează direct cu variabilele exterioare, așa că noua valoare a lui $y rămâne și după ce funcția se termină:
Ieșire: script PHP
<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y;
?>
Folosirea tabloului $GLOBALS
PHP păstrează, de asemenea, toate variabilele globale într-un tablou numit $GLOBALS[index]. O funcție le poate citi și modifica prin acest tablou, cum face codul de aici:
Ieșire: script PHP
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>
Cuvântul cheie static în PHP
Variabilele unei funcții dispar în mod normal după ce aceasta termină de rulat. Uneori însă vrei ca o variabilă locală să rămână până la următorul apel, pentru că încă ai nevoie de valoarea ei. Adaugă pur și simplu cuvântul cheie static atunci când o declari prima dată:
Folosirea cuvântului cheie static
Pentru că $x este static, fiecare apel continuă de unde s-a oprit cel anterior, așa că rezultatul numără 0, 1, 2:
Ieșire: script PHP
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
echo "\n";
myTest();
echo "\n";
myTest();
?>