PHP变量作用域「全局变量&局部变量」&global&static
1. 什么是变量的作用域?
变量的作用域指的是变量的可见范围,也就是说,在哪些位置可以访问和使用该变量。
PHP中的变量作用域分为两种:全局变量和局部变量。
2. 全局变量
全局变量指的是定义在函数外部的变量,它们可以在脚本的任何位置被访问和使用。
举个例子:
```
$x = 5; // 全局变量
function myFunction() {
echo $x; // 在函数内部访问 $x 变量
}
myFunction();
?>
```
以上代码输出的结果为:
```
5
```
可以看到,在函数 `myFunction()` 内部可以直接访问并使用变量 `$x`。
但是,如果在函数内部需要修改全局变量的值,就需要使用关键字 `global`。
3. global 关键字
`global` 是一个关键字,它的作用是在函数内部访问和修改全局变量的值。
举个例子:
```
$x = 5; // 全局变量
function myFunction() {
global $x;
$x = 10;
}
myFunction();
echo $x; // 输出结果为 10
?>
```
可以看到,通过在函数内部使用 `global` 关键字,就可以访问和修改全局变量 `$x` 的值。
4. 局部变量
局部变量指的是定义在函数内部的变量,它们只能在函数内部被访问和使用。
举个例子:
```
function myFunction() {
$x = 5; // 局部变量
echo $x; // 在函数内部访问 $x 变量
}
myFunction();
echo $x; // 这里访问不到局部变量 $x,会报错
?>
```
以上代码的输出结果为:
```
5
Notice: Undefined variable: x in ...
```
可以看到,在函数外部访问局部变量 `$x` 会导致一个未定义变量的警告。
5. static 关键字
`static` 关键字可以用来在函数内部声明静态变量。
静态变量总是存在于内存中,在多次调用同一函数时保持其值不变。
举个例子:
```
function myFunction() {
static $x = 0;
echo $x;
$x++;
}
myFunction();
myFunction();
myFunction();
?>
```
以上代码输出的结果为:
```
0
1
2
```
可以看到,在每次调用 `myFunction()` 时,静态变量 `$x` 的值都会被保留并且累加。
6. 本文小结
本文介绍了 PHP 中变量的作用域,包括全局变量和局部变量。
同时,我们介绍了关键字 `global`,它可以在函数内部访问和修改全局变量的值。
最后,我们还介绍了 `static` 关键字,它可以用来声明静态变量,保持其值的不变性。