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";
}
我想根据以下 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";
}