laravel - php條件判斷中同時有"與、或",優先權是怎樣的?
習慣沉默
習慣沉默 2017-05-16 12:02:33
0
5
541

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()程式碼中那樣寫對嗎?

習慣沉默
習慣沉默

全部回覆(5)
刘奇

根據PHP手冊:運算子優先權頁面顯示,優先權是 >

所以題主的程式碼可以這樣寫:

$isAuthor = $article->user_id ==  Auth::id();
$isValid = $article->status==0 || $article->expired_at < Carbon::now();

if ($isAuthor && $isValid)
{
    $article->delete();
    return back();
}

if的判斷語句不要寫得太長,閱讀性不好;

仅有的幸福

參考手冊

建議2、3個條件用括號擴大

phpcn_u1582

雷雷

世界只因有你

與的優先權大於或

漂亮男人

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!