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

if ($users == 'all' || $_POST['user'] == 1 && $users == 'admins' || $_POST[ 'user' ] == 0 && $users == 'mods') ...

我不明白如何满足所有这些条件,因为它们之间没有括号:(
||&& 更重要吗?首先评估哪些部分?

最佳答案

&& 取决于当左侧为真时对右侧表达式的评估,而 || 则不然。您可以将其重写为:

if(
    $users == 'all' ||
    ($_POST['user'] == 1 && $users == 'admins') ||
    ($_POST['user'] == 0 && $users == 'mods')
)

它会是一样的。

关于php - 多个 bool 条件 - 运算符优先级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8138269/

10-15 12:58