Sunday 26 May 2013
Facebook StumbleUpon Twitter Google+ Pin It

PHP Variable Scope


Variable Scope

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:
  • Local variables
  • Function parameters
  • Global variables
  • Static variables

Local Scope

A variable declared within a PHP function is local and can only be accessed within that function:

<?php
$x=5; // global scope

function myTest()
{
echo $x; // local scope
}

myTest();
?>

The script above will not produce any output because the echo statement refers to the local scope variable $x, 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.
Local variables are deleted as soon as the function is completed.


Global Scope

A variable that is defined outside of any function, has a global scope.
Global variables can be accessed from any part of the script, EXCEPT from within a function.
To access a global variable from within a function, use the global keyword:


<?php
$x=5; // global scope
$y=10; // global scope

function myTest()
{
global $x,$y;
$y=$x+$y;
}

myTest();
echo $y; // outputs 15
?>


PHP also stores all global variables in an array called $GLOBALS[index]. The index holds the name of the variable. This array is also accessible from within functions and can be used to update global variables directly.
The example above can be rewritten like this:


<?php
$x=5;
$y=10;

function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];

myTest();
echo $y;
?>


Static Scope

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:


<?php

function myTest()
{
static $x=0;
echo $x;
$x++;
}

myTest();
myTest();
myTest();

?>


Then, each time the function is called, that variable will still have the information it contained from the last time the function was called.
Note: The variable is still local to the function.


Parameter Scope

A parameter is a local variable whose value is passed to the function by the calling code.
Parameters are declared in a parameter list as part of the function declaration:


<?php

function myTest($x)
{
echo $x;
}

myTest(5);

?>



Parameters are also called arguments. 

No comments: