作用域是指在一个脚本中某个变量可以使用或可见的范围。PHP具有6项基本的作用域规则。
■内置超级全局变量可以在脚本的任何地方使用和可见。
■常量,一旦被声明,将可以在全局可见;也就是说,它们可以在函数内外使用。
■在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部。
■函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致。
■在函数内部创建并被声明为静态的变量无法在函数外部可见,但是可以在函数的多次执行过程中保持该值(我们将在第5章全面介绍这个思想)。
■在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在了。
$_GET和$_POST数组以及一些其他特殊变量都具有各自的作用域规则。这些被称作超级全局变量,它们可以在任何地方使用和可见,包括内部和外部函数。
超级全局变量的完整列表如下所示:
■$GLOBALS,所有全局变量数组(就像global关键字,这将允许在一个函数内部访问全局变量——例如,以$GLOBALS['myvariable']的形式。)
■$_SERVER,服务器环境变量数组
■$_GET,通过GET方法传递给该脚本的变量数组
■$_POST,通过POST方法传递给该脚本的变量数组
■$_COOKIE,cookie变量数组
■$_FILES,与文件上传相关的变量数组
■$_ENV,环境变量数组
■$_REQUEST,所有用户输入的变量数组,包括$_GET、$_POST和$_COOKIE所包含的输入内容(但是,不包括PHP 4.3.0版本以后的$_FILES)
■$_SESSION,会话变量数组
在本书以后的相关内容中,我们将逐个详细介绍这些变量。
在本章稍后介绍函数和类的时候,我们将详细介绍作用域。从现在开始,在默认情况下,我们所使用的所有变量都是全局变量。