objected在if子句中作为boolean返回

时间:2010-09-23 05:10:00

标签: php conditional boolean

我不知道何时以及如何返回各种变量。考虑到我有一个带有对象的条件语句,可以在其中进行验证。我是对的,它作为布尔值返回。

if($id = $oE->validate($_POST, $_FILES)){
...
}

我真正想要的是,如果有任何错误,则返回错误数组,否则它将返回更新内容的$ id。

如上所述,如果validate()对象返回任何值,它似乎返回一个布尔值?

1 个答案:

答案 0 :(得分:1)

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
        }
    }