我需要以某种方式打破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!
}
}
休息在这里不起作用。我需要返回某种错误。我可以说输入数据是无效的,其中一点是,如果数据无效,则要避免在数据库中插入数据。
答案 0 :(得分:1)
答案 1 :(得分: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
,但不要使用它 - 这是愚蠢的:)
答案 2 :(得分: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
。
答案 3 :(得分:-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';
}
}
}