Понимание троичного оператора

У меня есть следующий пример:

$a=false;
$b=true;
$c=false;
if($a ? $b : $c){
echo 'false';
} else {
echo 'true';
}

Кажется, я не могу понять это утверждение, и мне нужен кто-то, чтобы объяснить мне, как оно работает …

-3

Решение

$a=false;
$b=true;
$c=false;
if($a ? $b : $c){
echo 'false';
} else {
echo 'true';
}

расширяется до:

$a=false;
$b=true;
$c=false;
if ($a) {
$temp = $b; // TRUE
} else {
$temp = $c; //FALSE
}
if($temp){
echo 'false';
} else {
echo 'true';
}

так как $a ложно, $temp назначен $c значение (которое является ложным), второе, если проверяет, является ли $ temp истинным (что не является), так что иначе оператор выполняется echo 'true'

1

Другие решения

Это эквивалент этого:

<?php

$a = false;
$b = true;
$c = false;

if(($a && $b) || (!$a && $c)) {
echo 'false';
} else {
echo 'true';
}
1

По вопросам рекламы [email protected]