Это скорее вопрос «почему это работает» и «почему и почему не использовать его».PHP «Ternary Like» Булевое выражение Любопытство
Мы все знаем PHP выражения, используя тройные операции
$var = (isset($i) ? true:false);
Но в PHP что-то вроде следующих работ тоже. (Это не тройная, 3 части, больше бинарной операции, 2parts.)
$var = true;
isset($i) || $var = false;
Что может быть не так практично :), но более полезным строительство
isset($i) || exit();
Так выше (намного лучше выглядит имо) будет иметь тот же результат, как
if(!isset($i)) exit();
Но кроме общего
defined('CONSTANT') || define('CONSTANT','FOO');
Я редко вижу этот тип конструкции, используемый в PHP. Почему это работает? Как это называется. Почему его не учат и не используют больше. Есть ли недостатки в его использовании? И есть ли практические способы использования &&
таким же образом?
FYI, '$ var = (isset ($ i)? True: false);' является просто свернутым синонимом для '$ var = isset ($ i);' –
его называют «логическим» или «. и это лениво - это означает: если первая часть верна, то нет необходимости * оценивать вторую часть, потому что результат всегда * будет * истинным. аналогично и: вторая часть будет оцениваться только в том случае, если первая часть верна. для получения дополнительной информации: см. ** [руководство] (https://secure.php.net/manual/en/language.operators.logical.php) ** –
@ Alvaro Right. это был просто пример троичного строительства. – skribe