多个布尔条件 - 运算符优先级

Ale*_*lex 4 php conditional if-statement

我遇到了一个如下所示的代码行:

if ($users == 'all' || $_POST['user'] == 1 && $users == 'admins' || $_POST[ 'user' ] == 0 && $users == 'mods') ...
Run Code Online (Sandbox Code Playgroud)

我不明白所有这些条件是如何满足的,因为它们之间没有括号:(

||不是更重要&&?首先评估哪些部件?

Luc*_*ore 9

当然,运算符的顺序也很明确,就像在任何体面的编程语言中一样.

看到这个链接.

  • 我使用**Nandos**作为助记符:**N**ot,**和**,**o**r,**s**首先是hortest形式.给〜,!,&,|,&&,||,AND,OR (3认同)

Ben*_*Ben 9

&&取决于对正确表达的评价,||不是.您可以将其重写为:

if(
    $users == 'all' ||
    ($_POST['user'] == 1 && $users == 'admins') ||
    ($_POST['user'] == 0 && $users == 'mods')
)
Run Code Online (Sandbox Code Playgroud)

它会是一样的.