php 变量作用域的用法总结
本文介绍的有关 php 变量作用域的基础知识,并举了很多的例子,以帮助大家的理解。
PHP 中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它
的值)的一个领域。
对于初学者来说,变量的作用域是它们所驻留的页面。因此,如果你定义了
$var,页面余下
部分就可以访问
$var,但是,其它页面一般不能访问它(除非使用特殊的变量)。
因为包含文件像它们是原始(包含)脚本的一部分那样工作,所以在
include() 那一行之前
定义的变量可供包含文件使用。此外,包含文件内定义的变量可供
include() 那一行之后的
父(包含)脚本使用。
当使用自己定义的函数时,所有这些都将变得不那么明显。这些函数具有它们自己的作
用域,这意味着在一个函数内使用的变量不能在其外部使用,在一个函数外部定义的变量
不能在其内部使用。由于这个原因,函数内部的变量可以具有与其外部的变量相同的名称,
但是它们仍然是完全不同的变量,并且具有不同的值。
要改变一个函数内的变量的作用域,可以使用
global 语句。
复制代码代码示例
:
<?php
function function_name() {
global $var;
}
$var=20;
function_name(); // Function call.
?>
在这个示例中,函数内部的
$var
现在与函数外部的
$var
相同。这意味着变量
$var 已经
具有一个值
20
,如果在函数内部改变了这个值,外部的
$var 值也会改变。
避开变量作用域的另一个方法是利用超全局变量:
$_GET、$_POST、$_REQUEST 等。这些
变量在你的函数内是自动可访问的(因此,它们是超全局变量)。也可以添加元素到
$GLOBALS 数组中,使得可以在函数内使用它们。
最好不要在函数内使用全局变量。在设计函数时,应该使它们根据需要接受每个值作为
参数,并根据需要返回任何值。依靠函数内的全局变量将使得它们更依赖于上下文,因而不
太有用。
在
PHP 中变量主要有:内置超级全局变量,一般的变量,常量,全局变量,静态变量
等
.
内置超级全局变量可以在脚本的任何地方使用和可见。即如果我们在一个
PHP 页面中
改变了其中的一个值,那么在其他
PHP 页面中使用时,它的值也会发生改变。
常量一旦被声明将可以在全局可见,也就是说,它们可以函数内外使用,但是这仅仅
限于一个页面之中(包含我们通过
include 和 include_once)包含进来的 PHP 脚本,但是在
其他的页面中就不能使用了。
在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部,在函数内
部的变量如果与全局变量名称相同,以函数内部的变量为准。
函数内部使用的变量声明为全局变量时,其名称要与全局变量的名称一致,在这样的