<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Superglobals are built-in variables that are always available in all scopes</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="reserved.variables.html">Predefined Variables</a></div> <div class="next" style="text-align: right; float: right;"><a href="reserved.variables.globals.html">$GLOBALS</a></div> <div class="up"><a href="reserved.variables.html">Predefined Variables</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="language.variables.superglobals" class="refentry"> <div class="refnamediv"> <h1 class="refname">Superglobals</h1> <p class="refpurpose"><span class="refname">Superglobals</span> — <span class="dc-title">Superglobals are built-in variables that are always available in all scopes</span></p> </div> <div class="refsect1 description" id="refsect1-language.variables.superglobals-description"> <h3 class="title">Description</h3> <p class="para"> Several predefined variables in PHP are "superglobals", which means they are available in all scopes throughout a script. There is no need to do <strong class="command">global $variable;</strong> to access them within functions or methods. </p> <p class="para"> These superglobal variables are: <ul class="simplelist"> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.globals.html" class="classname">$GLOBALS</a></var></var></li> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.server.html" class="classname">$_SERVER</a></var></var></li> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.get.html" class="classname">$_GET</a></var></var></li> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.post.html" class="classname">$_POST</a></var></var></li> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.files.html" class="classname">$_FILES</a></var></var></li> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.cookies.html" class="classname">$_COOKIE</a></var></var></li> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.session.html" class="classname">$_SESSION</a></var></var></li> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.request.html" class="classname">$_REQUEST</a></var></var></li> <li class="member"><var class="varname"><var class="varname"><a href="reserved.variables.environment.html" class="classname">$_ENV</a></var></var></li> </ul> </p> </div> <div class="refsect1 changelog" id="refsect1-language.variables.superglobals-changelog"> <h3 class="title">Changelog</h3> <p class="para"> <table class="doctable informaltable"> <thead> <tr> <th>Version</th> <th>Description</th> </tr> </thead> <tbody class="tbody"> <tr> <td>4.1.0</td> <td> Superglobals were introduced to PHP. </td> </tr> </tbody> </table> </p> </div> <div class="refsect1 notes" id="refsect1-language.variables.superglobals-notes"> <h3 class="title">Notes</h3> <blockquote class="note"><p><strong class="note">Note</strong>: <strong>Variable availability</strong><br /> <p class="para"> By default, all of the superglobals are available but there are directives that affect this availability. For further information, refer to the documentation for <a href="ini.core.html#ini.variables-order" class="link">variables_order</a>. </p> </p></blockquote> <blockquote class="note"><p><strong class="note">Note</strong>: <strong>Dealing with register_globals</strong><br /> <p class="para"> If the deprecated <a href="ini.core.html#ini.register-globals" class="link">register_globals</a> directive is set to <em>on</em> then the variables within will also be made available in the global scope of the script. For example, <var class="varname"><var class="varname"><a href="reserved.variables.post.html" class="classname">$_POST['foo']</a></var></var> would also exist as <var class="varname"><var class="varname">$foo</var></var>. </p> <p class="para"> For related information, see the FAQ titled "<a href="faq.using.html#faq.register-globals" class="link">How does register_globals affect me?</a>" </p> </p></blockquote> <blockquote class="note"><p><strong class="note">Note</strong>: <strong>Variable variables</strong><br /> <p class="para"> Superglobals cannot be used as <a href="language.variables.variable.html" class="link">variable variables</a> inside functions or class methods. </p> </p></blockquote> </div> <div class="refsect1 seealso" id="refsect1-language.variables.superglobals-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"><a href="language.variables.scope.html" class="link">variable scope</a></li> <li class="member">The <a href="ini.core.html#ini.variables-order" class="link">variables_order</a> directive</li> <li class="member"><a href="book.filter.html" class="link">The filter extension</a></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="reserved.variables.html">Predefined Variables</a></div> <div class="next" style="text-align: right; float: right;"><a href="reserved.variables.globals.html">$GLOBALS</a></div> <div class="up"><a href="reserved.variables.html">Predefined Variables</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>