PHP 变量及其作用域
PHP是一门弱类型语言,所以不用定义变量类型。
#PHP变量的作用域
一、PHP有四种不同的变量作用域
1.local
2.global
3.static
4.parameter
二、局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被被脚本中的任何部分访问,而要在一个函数中访问一个全局变量,需要使用global关键字。
<?php
$x=5; // 全局变量
function myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?>
运行结果如下:
测试函数内变量:
变量 x 为:
变量 y 为: 10
测试函数外变量:
变量 x 为: 5
变量 y 为:
PHP global 关键字
<?php
$x=5;
$y=10;
function mytest(){
global $x,$y;
$y=$x+$y;
}
mytest();
echo $y;//输出15
?>
PHP将所有全局变量储存在一个名为$GLOBAL[index]的数组中。所以上面的实例可以写成这样;
<?php
$x=5;
$y=10;
function mytest(){
$GLOBAL['y']=$GLOBAL['x']+$GLOBAL['y']
}
mytest();
echo $y;
?>
Static 作用域
当一个函数完成时,他的所有变量都会被删除,如果如果你希望某个局部变量不被删除,请在第一次声明采用Static关键字。
<?php
function mytest(){
static $x=1;
echo $x;
$x++;
}
mytest();
mytest();
mytest();
?>
上述代码输出结果为1 2 3。