Bereik van PHP -variabelen
Bereik van PHP-variabelen
In PHP kunnen variabelen overal in het script worden gedeclareerd.
Het bereik van een variabele is het deel van het script waar naar de variabele kan worden verwezen/gebruikt.
PHP heeft drie verschillende variabele bereiken:
- lokaal
- globaal
- statisch
Wereldwijd en lokaal bereik
Een variabele die buiten een functie is gedeclareerd, heeft een GLOBAL SCOPE en is alleen toegankelijk buiten een functie:
Voorbeeld
Variabele met globaal bereik:
<?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>";
?>
Een variabele gedeclareerd binnen een functie heeft een LOCAL SCOPE en is alleen toegankelijk binnen die functie:
Voorbeeld
Variabele met lokale scope:
<?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>";
?>
U kunt lokale variabelen met dezelfde naam in verschillende functies hebben, omdat lokale variabelen alleen worden herkend door de functie waarin ze zijn gedeclareerd.
PHP Het wereldwijde trefwoord
Het global
sleutelwoord wordt gebruikt om vanuit een functie toegang te krijgen tot een globale variabele.
Gebruik hiervoor het global
trefwoord vóór de variabelen (binnen de functie):
Voorbeeld
<?php
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP slaat ook alle globale variabelen op in een array met de naam
. De bevat de naam van de variabele. Deze array is ook toegankelijk vanuit functies en kan worden gebruikt om globale variabelen direct bij te werken.$GLOBALS[index]
index
Het bovenstaande voorbeeld kan als volgt worden herschreven:
Voorbeeld
<?php
$x = 5;
$y = 10;
function myTest()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP Het statische trefwoord
Normaal gesproken worden alle variabelen verwijderd wanneer een functie is voltooid/uitgevoerd. Soms willen we echter dat een lokale variabele NIET wordt verwijderd. We hebben het nodig voor een volgende klus.
Gebruik hiervoor het static
sleutelwoord wanneer u de variabele voor het eerst declareert:
Voorbeeld
<?php
function myTest()
{
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Elke keer dat de functie wordt aangeroepen, heeft die variabele dan nog steeds de informatie die deze bevatte van de laatste keer dat de functie werd aangeroepen.
Opmerking: de variabele is nog steeds lokaal voor de functie.