# 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:
1.  Local
2.  Global
3.  Static

---

## 1. Local Scope
A variable declared **within** a function has a LOCAL SCOPE and can only be accessed within that function.

```php
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.

```php
$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.

```php
function myTest() {
  static $x = 0;
  echo $x;
  $x++;
}

myTest(); // 0
myTest(); // 1
myTest(); // 2
```

[[programming/php/php]]