PHP && Оператор оценки короткого замыкания - PullRequest
2 голосов
/ 23 января 2020

В JavaScript, я могу сделать:

console.log( 'a' || 'b' ); // Prints 'a'

В PHP, эквивалент:

echo 'a' ?: 'b'; // Prints 'a'

В JavaScript:

console.log( 'a' && 'b' ); // Prints 'b'

Мой вопрос такой: каков PHP эквивалент JavaScript 's' a '&&' b '?

Если я сделаю следующее в PHP:

echo 'a' && 'b'; // Prints 1

Как вы можете видеть, он набирает приведение к логическому значению 1 (true).

Что такое оператор PHP, который возвращает мне фактические значения, например JavaScript ' s &&?

PS Я знаю о троичных выражениях, пожалуйста, не предлагайте это.

1 Ответ

1 голос
/ 23 января 2020

&& - логический оператор, и он оценивается как true | false. В PHP есть немного другой оператор с именем null coalesce operator . Обозначается ??. Он оценивает, является ли первый операнд null. Если это null, результатом является второй операнд оператора.

$variable = 'String';
return $variable ?? 'default'; // results in 'String'

$variable = null;
return $variable ?? 'default'; // results in 'default'

Подробнее об операторе: https://wiki.php.net/rfc/isset_ternary

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...