PHP 具有 4 个变量的逻辑运算符

PHP Logical Operators with 4 variables

我想根据以下 4 个变量的组合设置表单字段的 disabled 状态:已处理、已开始处理、已结束、用户 ID

如果不进行处理,应禁用表单域

如果进程已经启动或结束,它也应该被禁用,除非用户 id == 1。因此用户 1 仍然可以填写表单字段,即使进程已经启动或结束。如果不处理它,也应该为用户 1 禁用它。

我试过这种方法,但没有像我预期的那样工作,所以我的逻辑或理解 PHP 是如何工作的肯定有缺陷:

'disabled' => !$proc || (($proc_started || $proc_ended) && !$user_id == 1)

这样一来,其他用户就会看到表单字段也已启用,这是我不想要的。它是逻辑运算符的层次结构吗? 你能给我指出正确的方向吗?谢谢

!$user_id == 1(!$user_id) == 1

$foo = 42;

!$foo == false;

您想写!($user_id == 1)$user_id != 1

应该可以。

if($user_id === 1) {

    if($state != "processed") {

        $state = "Enabled" // or anything else of your choice

    }

} else {

    $state = "Disabled";

}