== Why is this an issue? 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 [source,php] ---- $myGlobalVariable; function foo() { global $myGlobalVariable; // Noncompliant $GLOBALS['myGlobalVariable']; // Noncompliant // ... } ---- === Compliant solution [source,php] ---- function foo($myStateVariable) { // ... } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]