函数不返回值

时间:2011-07-02 13:22:54

标签: php function

由于某种原因,此函数不会返回值ciao

$a = "ciao";

function a() {
    return $a;
}

我不知道为什么。

3 个答案:

答案 0 :(得分:3)

在PHP中,函数无权访问全局变量。在函数体中使用global $a或将$ a的值作为参数传递。

答案 1 :(得分:3)

函数只能返回它们在本地空间中的变量,称为范围:

$a = "ciao";

function a() {
    $a = 'hello`;
    return $a;
}

将返回hello,因为在a()中,$a是它自己的变量。如果您需要函数中的变量,请将其作为参数传递:

$a = "ciao";

function a($a) {
    return $a;
}
echo a($a); # "ciao"

顺便说一句,如果您启用NOTICES to be reportederror_reporting(-1);),PHP会告诉您原始代码中的return $a使用了未定义的变量。

答案 2 :(得分:2)

$a不在函数范围内。

PHP不适用于像JS一样的块作用域的闭包,如果你想访问函数中的外部变量,你必须传递它是明智的,或使用global来制作它可用,这是不受欢迎的。

$a = "ciao";

function a() {
    global $a;
    return $a;
}

或PHP5.3 +中的闭包样式

function a() use ($a) {
    return $a;
}