PHP变量-----作用域、global、static等关键字

1.局部和全局作用域

php中在function体中定义的变量为局部变量,在function外定义的变量叫做全局变量

 <?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";
?> 

使用define函数定义的全局变量可以直接在函数内部使用

$var1 = "fuck";
define("GREETING", "欢迎来到德莱联盟");
function var1()
{
global $var1;
echo $var1;
echo $GLOBALS[var1];
echo GREETING;
}

2. global关键字

在php中function体内无法使用全局变量,如果要使用的话,需要使用global关键字先声明在使用

<?php
$x=5;
$y=10;
 
function myTest()
{
    global $x,$y;
    $y=$x+$y;
}
 
myTest();
echo $y; // 输出 15
?>

3.static作用域

当函数运行完毕时,函数内的变量都会被消除,如果还需要使用不希望被删除的话,使用static关键字。仅在第一次声明变量的时候使用。

<?php
function myTest()
{
    static $x=0;
    echo $x;
    $x++;
}
 
myTest();
myTest();
myTest();
?>