Php objected在if子句中作为布尔值返回

Php objected在if子句中作为布尔值返回,php,conditional,boolean,Php,Conditional,Boolean,我对何时以及如何返回各种变量知之甚少。考虑到我有一个条件语句,其中有一个要验证的对象。这是作为布尔值返回的,对吗 if($id = $oE->validate($_POST, $_FILES)){ ... } 我真正想要的是,如果有任何错误,它将返回一个错误数组,否则它将返回更新内容的$id 如果validate()对象返回任何值,那么它似乎返回布尔值true???PHP将任何非零值解释为true。您需要的是传递一个包含任何错误代码的引用,并让函数在失败时返回false,或者在成功时返回

我对何时以及如何返回各种变量知之甚少。考虑到我有一个条件语句,其中有一个要验证的对象。这是作为布尔值返回的,对吗

if($id = $oE->validate($_POST, $_FILES)){
...
}
我真正想要的是,如果有任何错误,它将返回一个错误数组,否则它将返回更新内容的$id


如果validate()对象返回任何值,那么它似乎返回布尔值true???

PHP将任何非零值解释为true。您需要的是传递一个包含任何错误代码的引用,并让函数在失败时返回false,或者在成功时返回id。即:

class Validator()
    {
    function validate($post,$files,$errorRef)
        {
        //Your code here
        if ($success)
            {
            return $id;
            }
        else
            {
            $errorRef = $errorCode;
            return false;
            }
        }
    }
//
$oE = new Validator;
$error = NULL;
$id = $oE->validate($_POST,$_FILES,&$error);
if ($id !== false) //If validator did not return false
    {
    //Stuff happens
    }
else
    {
    switch ($error)
        {
        //Error Handling Stuff
        }
    }

validate()返回什么?bool或mixed?validate返回$id=315(无论什么),或返回$error=array('error'=>etc等等)yea这就是我所想的,但是如果我还需要失败时产生的$errors,而不仅仅是false,该怎么办呢。我想我可以把它存放在别的地方……它可以让你这样做。它将它们存储在
$error
变量中,您可以通过
&
运算符将其引用传递给函数。。。