laravel - php条件判断中同时有"与、或",优先级是怎样的?
習慣沉默
習慣沉默 2017-05-16 12:02:33
0
5
567

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

雷雷

世界只因有你

与的优先级大于或

漂亮男人

雷雷

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板