2013-09-27 126 views
1

我需要打破如果陳述莫名其妙。以下是密碼打破如果陳述PHP

public function userData($data) { 
    //checks if user is in the database 
    if (self::checkUserExist($data)==false) { 
     $userInfo = array(); 
     $userInfo['id'] = (isset($data->id)) ? $data->id : break; 
     $userInfo['email'] = (isset($data->email)) ? $data->email : break; 
     $this->conn->insert($userInfo, $Table); // inserts data! 
    } 
} 

休息在這裏不起作用。我需要返回某種錯誤。我可以說輸入的數據是無效的或什麼的,主要是爲了避免數據在數據無效的情況下插入到數據庫中。

+2

你需要做什麼從功能 – pNre

+0

我是['return'(http://php.net/manual/en/function.return.php)在這種情況下,不會反駁'break'或'return'......'if()'語句是插入依賴關係的正確位置(這就是它的原因)。 – Christoph

回答

0

用途:

public function userData($data) { 
    if (self::checkUserExist($data)==false && isset($data->id) && isset($data->email)) { //checks if user is in the database 
      $userInfo = array('id' => $data->id,'email' => $data->email); 
      $this->conn->insert($userInfo, $Table); // inserts data! 
    } 
} 

或者return或使事情變得更糟:goto

+0

哦thx,這符合我的需要!爲什麼我沒有想到這個! – Cardiner

1

break/while循環。使用返回虛假

0

您無法打破if;如果這是你的整個代碼,你可以使用return聲明;此外,你不應該用ternary operator? :「)相結合它會導致一個解析錯誤:

PHP Parse error: syntax error, unexpected 'break' (T_BREAK) PHP Parse error: syntax error, unexpected return (T_RETURN)

另一種方法,是使用goto(我可以聽到撲過來,但來看看這個問題:Examples of good gotos in c or c++

還有一些不起眼的黑客就像 do { ... } while(0);

,使您可以使用break,但不要使用 - 這是愚蠢的:)

-1

試試下面的代碼:

public function userData($data) { 
    if (self::checkUserExist($data)==false) { //checks if user is in the database 
      $userInfo = array(); 
     $userInfo['id'] = (isset($data->id)) ? $data->id : break; 
      $userInfo['email'] = (isset($data->email)) ? $data->email : break; 
      if(!$this->conn->insert($userInfo, $Table)){ 
       $message = 'Error'; 
      }else{ 
       $message = 'Success'; 
      } 
    } 
    }