Variable Scope in PHP: 1. Local Variables
Variable Scope in PHP: 1. Local Variables
Scope can be defined as the range of availability a variable has to the program in which it is
declared. PHP variables can be one of four scope types:
1. Local variables
2. Global variables
3. Static variables
4. Function parameters
1. Local variables
A variable declared within a PHP function is local and can only be accessed within that function.
(the variable has local scope):
<?php
$a = 5; // global scope
function myTest()
{
echo $a; // local scope
}
myTest();
?>
The script above will not produce any output because the echo statement refers to the local
scope variable $a, which has not been assigned a value within this scope.
You can have local variables with the same name in different functions, because local variables
are only recognized by the function in which they are declared.
2. Global variables
Global scope refers to any variable that is defined outside of any function.
Global variables can be accessed from any part of the script that is not inside a function.
To access a global variable from within a function, use the global keyword:
<?php
$a = 5;
$b = 10;
function myTest()
{
global $a, $b;
$b = $a + $b;
}
myTest();
1
Variable Scope in PHP
echo $b;
?>
PHP also stores all global variables in an array called $GLOBALS[index]. Its index is the name
of the variable. This array is also accessible from within functions and can be used to update
global variables directly.
<?php
$a = 5;
$b = 10;
function myTest()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
myTest();
echo $b;
?>
3. Static variables
When a function is completed, all of its variables are normally deleted. However, sometimes you
want a local variable to not be deleted.
To do this, use the static keyword when you first declare the variable:
static $rememberMe;
Then, each time the function is called, that variable will still have the information it contained
from the last time the function was called.
4. Function parameters
A parameter is a local variable whose value is passed to the function by the calling code.
function myTest($para1,$para2,...)
{
// function code
}