PHP变量作用域小结

变量是用来存储信息的“容器”,PHP变量中有这几个规则:以$符号开始,后面接着变量的名称;变量名必须以字母或下划线字符开始;变量名只能包含字母数字字符及下划线;变量名区分大小写;

变量作用域是指脚本中变量可被引用或使用的部分。PHP有四种不同的变量作用域:static  parameter global local. 

局部和全局作用域(loacal  global)

在所有函数外定义的变量拥有全局作用域,在函数内部声明的变量是局部变量,仅能在函数内部访问。要在一个函数中使用全局变量,需要使用global关键字。

[php] view plain copy
 
  1. //使用global关键字  
  2. <?php  
  3. $x=10;  
  4. $y=20;  
  5. function test(){  
  6.     global $x,$y;  
  7.     $y=$x+$y;  
  8. }  
  9. test();  
  10. echo $y;//输出30  
[html] view plain copy
 
  1. //全局变量局部变量  
  2. <?php  
  3. $x=5; // 全局变量  
  4.   
  5. function myTest()  
  6. {  
  7.     $y=10; // 局部变量  
  8.     echo "<p>测试函数内变量:<p>";  
  9.     echo "变量 x 为: $x"; //输出错误 Notice: Undefined variable:  
  10.     echo "<br>";  
  11.     echo "变量 y 为: $y";  
  12. }   
  13.   
  14. myTest();  
  15.   
  16. echo "<p>测试函数外变量:<p>";  
  17. echo "变量 x 为: $x";  
  18. echo "<br>";  
  19. echo "变量 y 为: $y";  //输出错误 Notice: Undefined variable:  

PHP将所有的全局变量存储在一个数组中,名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。

 

static作用域

当一个函数完成时,它的所有变量通常都会删除,如果期望某个局部变量不被删除,在第一次声明变量时使用static关键字。

 

[html] view plain copy
 
  1. <?php  
  2. function test(){  
  3.     static $y=1;  
  4.     echo $y;  
  5.     $y++;  
  6. }  
  7. echo test(); //1  
  8. echo test(); //2  
  9. echo test();  

 

parameter作用域

参数是通过调用代码将值传递给函数的局部变量。

[html] view plain copy
 
  1. <?php  
  2.   
  3. function myTest($x)  
  4. {  
  5. echo $x;  
  6. }  
  7.   
  8. myTest(5);  
posted @ 2017-01-10 17:10  天涯海角路  阅读(180)  评论(0)    收藏  举报