PHP Variable Scopes (original) (raw)

Skip to content

Summary: in this tutorial, you’ll learn about PHP variable scopes, which specify the part of code that can access a variable.

Introduction to PHP variable scopes #

The scope of a variable determines which part of the code can access it. The locations where the variable can be accessible determine the scope of the variable.

In PHP, variables have four types of scopes:

Local variables #

When you define a variable inside a function, you can only access that variable within the function. The variable is said to be local to the function.

The following example defines the say() function that displays the 'Hi' message:

`<?php

function say() { $message = 'Hi'; echo $message; }`Code language: PHP (php)

Inside the say() function, we define the $message variable. The $message variable is a local variable. And you cannot access it from the outside of the say() function.

Also, the $message variable only exists during the execution of the say() function. Once the say() function ends, the $mesage variable won’t exist anymore.

Global variables #

When you declare a variable outside of a function, the variable is global. You can access the variable anywhere within the script except inside a function. For example:

`<?php

$message = 'Hello';

function say() { $message = 'Hi'; echo $message; }

echo $message; // Hello`Code language: PHP (php)

Try it

In this script, we have two variables with the same name $message.

The first is the global variable because we define it outside a function. The $message variable that we define inside the function is the local variable. Even though these variables have the same name, they’re different.

PHP allows you to access a global variable within a function by using the global keyword. For example:

`<?php

$message = 'Hello';

function say() { global $message; echo $message; // Hello }

say();`Code language: PHP (php)

Try it

How it works.

It’s important to note that using global variables is not a good practice.

Superglobal variables #

PHP has a list of built-in variables known as superglobal variables. These variables provide information about the PHP script’s environment.

The superglobal variables are always available in all parts of the script. The following table shows the list of PHP superglobal variables:

Superglobal Variables Meaning
$GLOBALS Returns an array that contains global variables. The variable names select which part of the array to access.
$_SERVER Returns data about the web server environment.
$_GET Return data from GET requests.
$_POST Return data from POST requests.
$_COOKIE Return data from HTTP cookies
$_FILES Return data from POST file uploads.
$_ENV Return information about the script’s environment.
$_REQUEST Return data from the HTTP request
$_SESSION Return variables registered in a session

Static variables #

A static variable retains its value between function calls. Also, a static variable is only accessible inside the function. To define a static variable, you use the static keyword. For example:

`<?php

function get_counter() { static $counter = 1; return $counter++; }

echo get_counter() . '
'; // 1 echo get_counter() . '
'; // 2 echo get_counter() . '
'; // 3`Code language: PHP (php)

Try it

Output:

1 2 3Code language: plaintext (plaintext)

How it works.

Function parameters #

Function parameters are local to the function. Therefore, function parameters can only be accessible inside the function. For example:

`<?php

function sum($items) { $total = 0; foreach($items as $item) { total+=total += total+=item; } return $total; }

// $items cannot be accessible here echo sum([10,20,30]);`Code language: PHP (php)

Try it

In this example, the $items is the parameter of the sum() function. It can only be accessible within the sum() function.

Summary #

Did you find this tutorial useful?