== 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[]
