background image

PHP 变量作用域

    无论怎样声明变量(按值或按引用),总之在 PHP 脚本的任何位置都可以声明变量。
但是,声明的位置会大大影响访问变量的范围.这个可访问的范围称为作用域。
PHP 变量有 4 种作用域:
•局部变量;
•函数参数;
•全局变量;
•静态变量。
1.局部变量
    在函数中声明的变量认为是局部变量,即它只能在该函数中引用。如果在函数外赋值,
将被认为是完全不同的另一个变量(即不同于函数中所包含的那个变量)。注意,退出声
明变量的函数时,该变量及相应的值就会撤销。
    局部变量很有用,因为它消除了出现意外副作用的可能性,否则,这些副作用将导致
可全局访问的变量被有意或无意地修改。考虑如下代码:

 

<?php

$x  = 4;

function assignx () { 

   $x = 0;

   print " $x inside function is $x. <br>";

assignx();

print " $x outside of function is $x. <br>";

?>

代码的执行结果为:

 

$x inside function is 0. 

$x outside of function is 4.

     可以看到,这里输出了两个不同的$x 值。这时因为 assignx()函数内的$x 是局部变量。
修改局部$x 的值不会对函数外部的任何值产生影响。同样地,修改函数外部的$x 也不会
对 assignx()内的人员变量影响。
2.函数参数
PHP 与其他很多编程语言一样,任何接受参数的函数都必须在函数首部中声明这些参数。
虽然这些参数接受函数外部的值,但退出函数后就无法再访问这些参数。
注解:本节只适用于按值传递的参数,而不是按引用传递的参数。按引用传递的参数会受
到函数内部修改的影响。如果你还不理解这句话,不要担心,我们会一点点往下看。
函数参数在函数名后面的括号内声明。他们的声明方式与一般的变量很相似:

 

function x10($value){

 $value=$value*10;