变量的作用域是脚本中变量可被引用 / 使用的范围,共有四种:
在所有函数外部定义的变量,拥有全局作用域 global;在函数内部定义的变量用于局部作用域 local。全局变量可以被脚本的任何位置访问,但在函数内部 访问全局变量要使用 global 关键字。而局部变量只能在函数内部进行访问。
- <?php
- $x = 2;
- function test(){
- $y = 3;
- echo $x;//$x为全局变量,函数内部访问需要加上global关键字
- echo "<br>";
- echo $y;
- echo "<br>";
- }
- test();
- echo $x;
- echo "<br>";
- echo $y;//不能使用函数内部定义的局部变量
-
当一个函数调用完后,它的所有变量都会被删除,如果想要某个局部变量不被删除,那么可以使用 static 关键字
- <?php
- function test(){
- $x = 0;
- echo $x;
- $x++;
- }
- test(); //输出0
- test(); //输出0
- test(); //输出0
- ?>
-
修改如下:
- <?php
- function test(){
- static $x = 0;
- echo $x;
- $x++;
- }
- test(); //输出0
- test(); //输出1
- test(); //输出2
- ?>
-
参数是通过调用代码将值传递给函数的局部变量,参数是在参数列表中声明的,作为函数声明的一部分。
- <?php
- function test($x){
- echo $x;
- }
- test(1); //输出1
- test(2); //输出2
- ?>