Variable Scope

variables can be declared anywhere in the script.


PHP has three different variable scopes:

  • local
  • global
  • static
  • Function parameters


Global and Local Scope

A variable declared outside a function has a GLOBAL SCOPE and can only be accessed outside a function:

    
        <?php
            $x = 1; // 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>";
        ?>
    

A variable declared within a function has a LOCAL SCOPE and can only be accessed within that function

Variable with local 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>";
        ?>
    


global Keyword

The global keyword is used to access a global variable from within a function.

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

            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.

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

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

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


static Keyword

when a function is completed/executed, all of its variables are deleted

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

            myTest();
            myTest();
            myTest();
        ?>
    

Function Parameters

a function is a small unit of program which can take some input in the form of parameters and does some processing and may return a value.

Function parameters are declared after the function name and inside parentheses. They are declared much like a typical variable would be:

    
        <?
            // multiply a value by 10 and return it to the caller
            function multiply ($value) {
            $value = $value * 10;
            return $value;
            }
            $retval = multiply (10);
            Print "Return value is $retval\n";
        ?>