Php全局变量和局部变量

代码1:函数内部使用函数外部变量错误方法


$name = 'fish';
function animal() {
    echo $name;
}
animal();

运行结果:Notice: Undefined variable: name in D:\wamp\www\index.php on line 5
由此得知,animal()方法中的 name name不是同一个变量。

如何才能在函数内部访问到函数外部的变量呢?可以在函数内部或者外部将 name name之前加上global即可;如下所示:

代码2:函数内部使用函数外部变量正确方法


$name = 'fish';
function animal() {
    global $name;
    echo $name;
}
animal();


global $name;
function animal() {
    $name = 'fish';
    echo $name;
}
animal();

运行结果:fish

那么,如果$name变量是在函数内部定义的,能够在函数外部或者别的函数中使用到吗?答案是显而易见的,不能,这就是局部变量,可以看下下面的代码段:

代码3:函数外部使用函数内部变量错误方法


function animal() {
    $name = 'fish';
}
echo $name;

运行结果:Notice: Undefined variable: name in D:\wamp\www\index.php on line 6
$name变量只能在animal()函数内部有意义。问题来了,如果我非要想在函数外部也能使用到函数内部定义的变量该怎么办?
“可以在函数内部定义变量时将其声明为global”,请看如下代码段:

代码4:函数外部使用函数内部变量正确方法


function animal() {
    global $name;
    $name = 'fish';
}
animal();
echo $name;

运行结果:fish
可以看到,我们先执行了animal()方法,然后再使用 nameanimal() name的操作,所以,需要记住的是,函数只有被调用了才有意义,且程序执行的顺序时从上到下,从左往右的。

你可能感兴趣的:(Php基础)