PHP返回值但为false

时间:2013-06-20 16:29:37

标签: php

我有这个简单的功能:

function isMember($uID, $pdo) {
$status = getUserStatus($uID, $pdo);
    if(isAllowed($status['status']))
            return $status['status'];
    return false;
}

现在我正在寻找一种方法来返回false yes,但也要返回变量的值。

我尝试了以下内容,但无论如何它都是空的:

return $status['status'] == false;

所以无论如何logi都返回false但是也给了我变量的值,即使它是假的,因为false不应该是空的:)

4 个答案:

答案 0 :(得分:1)

函数不能返回多个值,但可以通过(1)返回数组或(2)通过引用传递变量并存储要在该变量中返回的值来获得类似的结果。

  1. 您需要以返回包含以下内容的数组的方式编写函数:

    • 你不会回来的价值
    • 表示真/假的标志
  2. 通过引用将变量传递给您的函数,并将状态值存储在该变量中。

  3.     function isMember($uID, $pdo, &statByRef) {
    $status = getUserStatus($uID, $pdo);
    if(isAllowed($status['status'])) {
    return $status['status'];
    }
    $statByRef = $status['status']; return false;
    }

答案 1 :(得分:1)

返回一个数组,并使用list()方法获取结果:

function isMember($uID, $pdo) {
    $status = getUserStatus($uID, $pdo);

    $statusString = $status['status'];
    $statusFlag = false;
    if(isAllowed($status['status']))
       $statusFlag = true;

    return array($statusFlag,statusString);
}

//usage
list($flag,$msg) = isMember(5,"whatever");
echo "Access: $flag, with message $msg";

答案 2 :(得分:0)

False中的False为空,请参阅http://php.net/manual/en/function.empty.php

来自文档: 确定变量是否被视为空。如果变量不存在或者其值等于FALSE,则该变量被视为空。如果变量不存在,empty()不会生成警告。

答案 3 :(得分:0)

尝试使用以下内容:

function isMember($uID, $pdo) {
$status = getUserStatus($uID, $pdo);
    if(isAllowed($status['status'])){
            return $status['status'];
    }
    return false;
} // If isAllowed returns true, then PHP will return $Status['Status'];, if not then PHP will by default return false.

我注意到你没有使用大括号,这使代码调试有点尴尬。然后验证如下:

if (isMember($Var,$AnotherVar) !== false){
 //isMember has not returned false, so PHP is operating within these braces
}

这么简单,应该是最有效的。


如果您想将真/假分配给$ status ['status'];那么你正在执行正确的方法,但错误的操作员。

==是一个比较运算符。不是作业

=是一个赋值运算符,因此您的赋值应为:

$status['status'] = false;