2010-09-23 36 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