php條件判斷中同時有"與、或",優先權是怎樣的?
例如:
if ($article->user_id == Auth::id() && $article->status==0 || $article->expired_at < Carbon::now())
{
$article->delete();
return back();
}
if語句中有3個條件:
$article->user_id == Auth::id() //文章属于该登录用户
$article->status==0 //文章的status字段为0
$article->expired_at < Carbon::now() //文章已过期
我想表達的是第1個條件要滿足,第2、3個條件只要滿足一個。
問題就是應該怎麼寫這個條件語句,上面if()
程式碼中那樣寫對嗎?
怪我咯2017-05-16 12:04:33
根據PHP手冊:運算子優先權頁面顯示,優先權是与
> 或
;
所以題主的程式碼可以這樣寫:
$isAuthor = $article->user_id == Auth::id();
$isValid = $article->status==0 || $article->expired_at < Carbon::now();
if ($isAuthor && $isValid)
{
$article->delete();
return back();
}
if
的判斷語句不要寫得太長,閱讀性不好;