PHP 四种变量范围比较:局部变量、全局变量、静态变量以及参数
时间:2015-01-07 17:13 来源: 我爱IT技术网 作者:山风
PHP 四种变量范围比较:局部变量、全局变量、静态变量以及参数
PHP 是一种较为松散的语言( Loosely Typed Language ),当我们声明一个变量时,不须指定变量的类型( type ),PHP 会自动根据指派给该变量的值来判断该变量的类型。虽然在声明变量时不须指定类型,但还有一项必须要指定的--变量的使用范围( scope )。PHP 有四种不同的使用范围:local、global、static、parameter,以下将分别介绍。
局部变量 (local variable)
在 function 中声明
只能在声明的 function 中使用 (local scope)
不同的 function 中可声明相同名称的局部变量
在声明变量 function 结束时,局部变量也就不起作用了
声明时不需使用任何关键字 (keyword)
$a = 5; // 全局变量function myTest(){echo $a; // 局部变量}myTest();
上例不会输入任何内容,因为 $a 在function 中未指定值。
全局变量 (global variable)
在 function 外声明
除了 function 中的 script不能存取外,整个网页中的 script 都可以存取该变量( global scope )
若要在 function 中使用全局变量,需使用关键字 global,见下例
在网页关闭时,全局变量就不起作用了
$a = 5;$b = 10;function myTest(){global $a, $b;//注意这行$b = $a + $b;}myTest();echo $b;
上例输出 15。
global 变量一旦声明之后,PHP 会将其放置在 $GLOBALS[index] 这个 array 中,其中 index 就是变量的名称。我在可以从 function 内存取这个 array,也可以直接指定值给 array 中的某个元素来改变其值。我们将上例改写如下:
$a = 5;$b = 10;function myTest(){$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];}myTest();echo $b;
静态变量 (static variable)
如前面所说,局部变量在函数结束时就会不起作用。不过有时候,当我们希望某局部变量不因函数结束而失效,我们可以在第一次声明该区域变量前,加上关键字-- static。
static $rememberMe;
如此一来,每次调用该函数时,此变量都会包含上一次调用函数时所得到的值。
要注意的是:静态变量仍是一种局部变量。
参数 (parameter,或称 argument)
参数指的是一种调用函数时传入的局部变量。其会在函数声明时的参数列 (parameter list) 中被声明。
function myTest($para1,$para2,...)//在小括号中声明{// 函数源程序}
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
