1

我需要以某种方式打破 if 语句。这是代码

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

休息在这里不起作用。我需要返回某种错误。我可以说输入数据无效或其他什么,这样做的要点是避免在数据无效时将数据插入数据库。

4

4 回答 4

1

break 中断 while/for 循环。使用返回 false

于 2013-09-27T08:40:35.040 回答
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 goto in c or c++

还有一些晦涩难懂的技巧,例如 do { ... } while(0);

允许您使用break,但不要使用它-这很愚蠢:)

于 2013-09-27T08:41:26.903 回答
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.

于 2013-09-27T08:41:50.310 回答
-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';
            }
     }
   }
于 2013-09-27T08:45:08.847 回答