Global variables are a useful construct, but they should not be abused. Functions can access the global scope either through the global keyword or though the $GLOBALS array, but these practices considerably reduce the function's readability and reusability. Instead, the global variable should be passed as a parameter to the function.

Noncompliant Code Example

$myGlobalVariable;

function foo()
{
  global $myGlobalVariable; // Noncompliant
  $GLOBALS['myGlobalVariable']; // Noncompliant
  // ...
}

Compliant Solution

function foo($myStateVariable)
{
  // ...
}