Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP返回值,但为false_Php - Fatal编程技术网

PHP返回值,但为false

PHP返回值,但为false,php,Php,我有一个简单的功能: function isMember($uID, $pdo) { $status = getUserStatus($uID, $pdo); if(isAllowed($status['status'])) return $status['status']; return false; } 现在,我正在寻找一种返回false yes的方法,但也要返回变量的值 我尝试了以下操作,但它仍然使其为空: return $status['stat

我有一个简单的功能:

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,因为false不应表示为空:)

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

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

    • 无法返回的值
    • 表示真/假的标志
  • 通过引用将变量传递到函数中,并将状态值存储在该变量中

  • 函数isMember($uID、$pdo和statByRef){
    $status=getUserStatus($uID,$pdo);
    如果(被允许($status['status']){
    返回$status['status'];
    }
    $statByRef=$status['status']; 返回false;
    }

    False在PHP中返回空值,请参阅

    从文件:
    确定变量是否为空。如果变量不存在或其值等于FALSE,则认为该变量为空。如果变量不存在,empty()不会生成警告。

    返回一个数组,并使用
    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";
    

    尝试使用类似以下内容:

    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
    }
    
    这么简单的事情,应该是最有效的


    如果您希望将true/false分配给$status['status'];那么您执行的方法是正确的,但运算符是错误的

    =
    是一个比较运算符。非转让

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


    $status['status']=false

    您希望
    返回$status['status']==false(请注意双等号)。很抱歉,无法正确设置最后一个函数的格式。使用
    修复了该问题。文本编辑器的格式不正确:)
    if (isMember($Var,$AnotherVar) !== false){
     //isMember has not returned false, so PHP is operating within these braces
    }