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
变量中,您可以通过&
运算符将其引用传递给函数。。。