2010-09-23 38 views
0

我不知道何时以及如何返回各种变量。考虑到我有一个条件语句和一个对象来验证它。我是对的,这是作为布尔值返回的。object返回布尔值内部如果子句

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

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

上面这个,它似乎返回一个布尔值,如果任何值都由validate()对象返回?

+0

validate()返回什么?布尔还是混合? – 2010-09-23 05:17:50

+0

validate返回$ id = 315(无论),或者它返回$ error = array('error'=> etc etc等等) – kalpaitch 2010-09-23 05:27:27

回答

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

这就是我想的,但是如果我还需要失败产生的$错误,宁可不只是错误。我想我可以将它存储在其他地方...... – kalpaitch 2010-09-23 05:28:41

+0

它可以让你这样做。它将它们存储在'$ error'变量中,您将该变量的参数(通过'&'运算符)传递给函数... – 2010-09-23 05:46:27

+0

啊是的,我看到了,谢谢 – kalpaitch 2010-09-23 05:52:38