首页 >后端开发 >php教程 >PHP 四种变量范围比较

PHP 四种变量范围比较

怪我咯
怪我咯原创
2017-06-19 15:05:252145浏览

PHP 是一种较为松散的语言( Loosely Typed Language ),当我们声明一个变量时,不须指定变量的类型( type ),PHP 会自动根据指派给该变量的值来判断该变量的类型。虽然在声明变量时不须指定类型,但还有一项必须要指定的--变量的使用范围( scope)。PHP 有四种不同的使用范围:local、global、static、parameter,以下将分别介绍。

局部变量 (local variable)
  在 function 中声明, 只能在声明的 function 中使用 (local scope)。不同的 function 中可声明相同名称的局部变量。
  在声明变量function 结束时,局部变量也就不起作用了
  声明时不需使用任何关键字(keyword)
$a = 5; // 全局变量
functionmyTest()
{echo $a; // 局部变量}
myTest();
  上例不会输入任何内容,因为 $a 在function 中未指定值。

全局变量 (global variable)
  在 function 外声明,除了 function 中的 script不能存取外,整个网页中的 script 都可以存取该变量( global scope )。若要在 function 中使用全局变量,需使用关键字 global,见下例:
  在网页关闭时,全局变量就不起作用了

$a = 5;
$b = 10;
functionmyTest()
{
global $a,$b;//注意这行
$b = $a +$b;
}
myTest();
echo $b;

  上例输出 15。
global 变量一旦声明之后,PHP 会将其放置在 $GLOBALS[index] 这个 array 中,其中 index 就是变量的名称。我在可以从 function 内存取这个 array,也可以直接指定值给 array 中的某个元素来改变其值。我们将上例改写如下:

$a = 5;
$b = 10;
functionmyTest()
{
$GLOBALS['b']= $GLOBALS['a'] + $GLOBALS['b'];
}
myTest();
echo $b;

  静态变量 (static variable)
  如前面所说,局部变量在函数结束时就会不起作用。不过有时候,当我们希望某局部变量不因函数结束而失效,我们可以在第一次声明该区域变量前,加上关键字-- static。
static$rememberMe;
  如此一来,每次调用该函数时,此变量都会包含上一次调用函数时所得到的值。
  要注意的是:静态变量仍是一种局部变量。
  参数 (parameter,或称 argument)
  参数指的是一种调用函数时传入的局部变量。其会在函数声明时的参数列 (parameter list) 中被声明。
functionmyTest($para1,$para2,...)//在小括号中声明
{// 函数源程序}


以上是PHP 四种变量范围比较的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn