Rozsah proměnných PHP
Rozsah proměnných PHP
V PHP lze proměnné deklarovat kdekoli ve skriptu.
Rozsah proměnné je část skriptu, kde lze na proměnnou odkazovat/použít ji.
PHP má tři různé rozsahy proměnných:
- místní
- globální
- statický
Globální a místní rozsah
Proměnná deklarovaná mimo funkci má GLOBÁLNÍ ROZSAH a lze k ní přistupovat pouze mimo funkci:
Příklad
Proměnná s globálním rozsahem:
<?php
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
Proměnná deklarovaná v rámci funkce má MÍSTNÍ ROZSAH a lze k ní přistupovat pouze v rámci této funkce:
Příklad
Proměnná s místním rozsahem:
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>
Lokální proměnné se stejným názvem můžete mít v různých funkcích, protože lokální proměnné rozpoznává pouze funkce, ve které jsou deklarovány.
PHP Globální klíčové slovo
Klíčové global
slovo se používá pro přístup ke globální proměnné z funkce.
Chcete-li to provést, použijte global
klíčové slovo před proměnnými (uvnitř funkce):
Příklad
<?php
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP také ukládá všechny globální proměnné do pole s názvem
. Obsahuje název proměnné . Toto pole je také přístupné z funkcí a lze jej použít k přímé aktualizaci globálních proměnných.$GLOBALS[index]
index
Výše uvedený příklad lze přepsat takto:
Příklad
<?php
$x = 5;
$y = 10;
function myTest()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP Statické klíčové slovo
Normálně, když je funkce dokončena/provedena, všechny její proměnné jsou vymazány. Někdy však chceme, aby NELZE smazat lokální proměnnou. Potřebujeme to pro další práci.
Chcete-li to provést, použijte static
klíčové slovo, když poprvé deklarujete proměnnou:
Příklad
<?php
function myTest()
{
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Poté, pokaždé, když je funkce volána, bude mít tato proměnná stále informace, které obsahovala od posledního volání funkce.
Poznámka: Proměnná je pro funkci stále lokální.