Intereting Posts
laravel csv, как получить файл csv с передними нулями PHP fopen – запись переменной в файл txt Значение повторяющегося атрибута Magento Можно ли очистить переменную другого сеанса? Проблема с Bcrypt не проверяется правильно Есть ли библиотека, которая может писать CSV-файл RFC 4180 с PHP? PHP-массив, хранящийся в сеансе, имеет значение null, если мы инициализируем массив с тем же самым ключом, это проблема с кодировкой или проблема с php? Передача массивов через Ajax / JSON без JQuery Ajax и файлы cookie javascript, это безопасно? Объекты PHP против массивов Сводный запрос MongoDB с использованием драйвера PHP Показать значения из таблицы базы данных MySQL внутри таблицы HTML на веб-странице Сортировка анкетных данных с использованием PHP и SQL отправлять несколько данных изображения с помощью текстового поля с углового контроллера Система регистрации PHP не будет работать (phpmyadmin, wampserver)

Поддерживает ли PHP соединение и дизъюнкцию изначально?

В Javascript используются операторы объединения и дизъюнкции.

Левый операнд возвращается, если его можно оценить как: false, в случае соединения (a && b) или true, в случае дизъюнкции (a || b); в противном случае возвращается правый операнд.

Существуют ли эквивалентные операторы в PHP?

Solutions Collecting From Web of "Поддерживает ли PHP соединение и дизъюнкцию изначально?"

PHP поддерживает оценку короткого замыкания, немного отличающуюся от конкретизации JavaScript. Мы часто видим пример (даже если это не очень хорошая практика) использования оценки короткого замыкания для проверки результата запроса MySQL в PHP:

// mysql_query() returns false, so the OR condition (die()) is executed. $result = mysql_query("some faulty query") || die("Error"); 

Обратите внимание, что оценка короткого замыкания работает, когда в PHP существует выражение, которое должно оцениваться по обе стороны логического оператора, что приведет к возврату. Затем он выполняет правую сторону только в том случае, если левая сторона ложна. Это отличается от JavaScript:

Просто делать:

 $a || $b 

вернет логическое значение TRUE или FALSE если либо правдиво, либо оба являются ложными. Он НЕ возвратил значение $b если $a был ложным:

 $a = FALSE; $b = "I'm b"; echo $a || $b; // Prints "1", not "I'm b" 

Поэтому, чтобы ответить на вопрос, PHP выполнит логическое сравнение двух значений и вернет результат. Он не вернет первое правдивое значение двух.

Более идиоматично в PHP (если есть такая вещь, как идиоматический PHP), было бы использовать тройную операцию:

 $c = $a ? $a : $b; // PHP 5.3 and later supports $c = $a ?: $b; echo $a ?: $b; // "I'm b" 

Обновление для PHP 7

PHP 7 вводит ?? нулевой коалесцирующий оператор, который может действовать как более близкое приближение к соединению. Это особенно полезно, потому что вам не нужно проверять isset() на клавишах массива левого операнда.

 $a = null; $b = 123; $c = $a ?? $b; // $c is 123;