PHP Variable Scope
In PHP, variables can be declared anywhere in the script. The scope of a variable is the part of the script where the variable can be referenced/used.
PHP has three different variable scopes:
- Local
- Global
- Static
1. Local Scope
A variable declared within a function has a LOCAL SCOPE and can only be accessed within that function.
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// echo $x; // Error: Undefined variable $x
2. Global Scope
A variable declared outside a function has a GLOBAL SCOPE and can only be accessed outside a function.
To access a global variable from within a function, use the global keyword.
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
3. Static Scope
Normally, when a function is completed/executed, all of its variables are deleted. However, sometimes we want a local variable NOT to be deleted. We need it for a further job.
To do this, use the static keyword when you first declare the variable.
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest(); // 0
myTest(); // 1
myTest(); // 2