Variable scope refers to the context within which a variable is defined and accessible. In simple terms, it tells you where you can use a variable in your code. There are three main types of variable scopes in PHP:

  1. Global Scope

  2. Local Scope

  3. Static Scope

Let’s explore each type in detail.

1. Global Scope

A variable has a global scope when it is defined outside of any function or class. This means it can be accessed anywhere in your script, including inside functions, but only if you explicitly tell PHP to use the global variable.

Here’s an example:

<?php
$globalVar = "I'm a global variable!"; // Global variable

function testGlobal() {
    global $globalVar; // Using the global keyword
    echo $globalVar; // Outputs: I'm a global variable!
}

testGlobal();
?>

In this example, $globalVar is defined outside the function, making it a global variable. Inside the function testGlobal(), we use the global keyword to access it.

2. Local Scope

A variable has a local scope when it is defined inside a function. This means it can only be accessed within that function. Once the function finishes executing, the variable is no longer accessible.

Example:

<?php
function testLocal() {
    $localVar = "I'm a local variable!"; // Local variable
    echo $localVar; // Outputs: I'm a local variable!
}

testLocal();

// Trying to access $localVar here will cause an error
// echo $localVar; // This will result in an "undefined variable" notice
?>

In this case, $localVar is defined inside the function testLocal(), so it can only be used within that function. Attempting to access it outside will lead to an error.

3. Static Scope

A static variable is one that retains its value even after the function has finished executing. This means that if you call the function again, the static variable will still hold the last value assigned to it.

Here’s an example:

<?php
function testStatic() {
    static $count = 0; // Static variable
    $count++;
    echo $count . "\n"; // Outputs the current count
}

testStatic(); // Outputs: 1
testStatic(); // Outputs: 2
testStatic(); // Outputs: 3
?>


Conclusion

Understanding variable scope is essential for effective PHP programming. By knowing the difference between global, local, static, you can write cleaner, more manageable code.