PHP函数中的变量

局部变量

在函数内部声明的变量(包括函数的参数),只能在函数内部调用,这叫做局部变量,函数执行完毕后变量释放,在函数外部无法调用

$weather = sunny;

function demo ()
{
    $weather = rainny;
    echo "Today is $weather";
}

demo (); //输出Today is rainny

全局变量

在函数外部声明的变量,可以在每个函数中使用(注意顺序问题:全局变量要声明在函数调用之前才可以使用),如果要在函数内部使用函数外部的变量,需要使用global关键字将外部变量引入

$weather = sunny;

function demo ()
{
    global $weather; //引入外部变量weather
    $weather = rainny; //变量被重新赋值
    echo "Today is $weather";
}

demo (); //输出Today is rainny

$weather = sunny;

function demo ()
{
    
    $weather = rainny; //局部变量
    global $weather;//全局变量被引入
    echo "Today is $weather";
}

demo (); //输出Today is sunny

function demo ()
{
    
    $weather = rainny; 
    global $weather;
    echo "Today is $weather";
}

$weather = sunny; //只要全局变量声明在函数调用之前都可以使用,否则不能被调用

demo (); //输出Today is sunny

常量

常量则不同于变量,只要定义了,就可以直接在函数里使用,还有九个全局数组

define("Content","hello world");
$_POST['demo'] = 1;

function demo ()
{
    echo Content."<br>";
    echo $_POST['demo'];
}

demo ();//输出 hello world 和 1 

静态变量

在函数中声明静态变量,只在第一次调用时被声明,存在初始化静态段中,之后再继续调用会到初始化静态段中找,如果有,直接使用,而不会再重新被声明,与全局变量类似,不会再函数执行完毕后释放,而是在整个脚本执行完后释放

 

function demo () //非静态变量,连续调用返回值永远是1
{
    $a = 0;
    $a++;
    return $a."<br>";
}

echo demo ();
echo demo ();
echo demo ();

 

 

function demo()
{
    static $a = 0;  //静态变量:在函数中声明静态变量,只在第一次调用时被声明,存在初始化静态段中,之后再继续调用会到初始化静态段中找,如果有,直接使用,而不会再重新被声明,与全局变量类似,不会再函数执行完毕后释放,而是在整个脚本执行完后释放
    $a++;
    echo $a."<br>";
}
demo(); // 输出1
demo(); // 输出2
demo(); // 输出3

 

 

 

posted @ 2016-05-26 11:41  天照丶鼬  阅读(342)  评论(0编辑  收藏  举报