中断 if 语句 PHP


Breaking if statement PHP

我需要以某种方式打破 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!
    }
}

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

中断时

/for 循环。 使用 return false

使用:

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.

你不能打破if;如果这是您的整个代码,您可以使用 return 语句;此外,您不应将其与ternary operator? :')结合使用,因为这会导致解析错误:

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

另一种方法是使用 goto(我可以听到抨击的声音,但看看这个问题:C 或 C++ 中好的 gotos 示例)

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

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

尝试以下代码:

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';
            }
     }
   }