搜尋

首頁  >  問答  >  主體

laravel - php條件判斷中同時有"與、或",優先權是怎樣的?

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

習慣沉默習慣沉默2778 天前579

全部回覆(5)我來回復

  • 怪我咯

    怪我咯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的判斷語句不要寫得太長,閱讀性不好;

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 12:04:33

    參考手冊

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

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 12:04:33

    雷雷

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-16 12:04:33

    與的優先權大於或

    回覆
    0
  • 漂亮男人

    漂亮男人2017-05-16 12:04:33

    雷雷

    回覆
    0
  • 取消回覆