Логические операторы PHP с 4 переменными - PullRequest
2 голосов
/ 25 июня 2019

Я хотел бы установить состояние disabled поля формы на основе комбинации из 4 переменных: обработано, процесс запущен, процесс завершен, идентификатор пользователя

Если оно не будет обрабатываться,поле формы должно быть отключено

Если процесс начался ИЛИ закончился, его также следует отключить, за исключением случая, когда идентификатор пользователя == 1. Таким образом, пользователь 1 все еще может заполнить поле формы, даже если процесс имеетначалось ИЛИ закончилось.И он также должен быть отключен для пользователя 1, если он не будет обрабатываться.

Я пытался таким образом, но не работает, как я ожидаю, поэтому в моей логике должен быть недостаток илипонимание того, как работает PHP:

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

Таким образом, другие пользователи также видят поле формы включенным, чего я не хочу.Это иерархия логических операторов?Можете ли вы указать мне правильное направление?Спасибо.

Ответы [ 2 ]

4 голосов
/ 25 июня 2019

!$user_id == 1 - это (!$user_id) == 1

$foo = 42;

!$foo == false;

Вы хотите написать !($user_id == 1) или $user_id != 1

2 голосов
/ 25 июня 2019

Должно работать.

if($user_id === 1) {

    if($state != "processed") {

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

    }

} else {

    $state = "Disabled";

}
...