Heim > Fragen und Antworten > Hauptteil
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
的判断语句不要写得太长,阅读性不好;
漂亮男人2017-05-16 12:04:33
if ($article->user_id == Auth::id() && ($article->status==0 || $article->expired_at < Carbon::now()))
{
$article->delete();
return back();
}