理解三元运算符
Understanding the ternary operator
我有以下例子:
$a=false;
$b=true;
$c=false;
if($a ? $b : $c){
echo 'false';
} else {
echo 'true';
}
我似乎无法理解这个语句,我需要有人向我解释它是如何工作的...
$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
值(这是假的),第二个 if 检查 $temp 是否是真的(不是),所以 else 语句被执行echo 'true'
这相当于:
<?php
$a = false;
$b = true;
$c = false;
if(($a && $b) || (!$a && $c)) {
echo 'false';
} else {
echo 'true';
}
我有以下例子:
$a=false;
$b=true;
$c=false;
if($a ? $b : $c){
echo 'false';
} else {
echo 'true';
}
我似乎无法理解这个语句,我需要有人向我解释它是如何工作的...
$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
值(这是假的),第二个 if 检查 $temp 是否是真的(不是),所以 else 语句被执行echo 'true'
这相当于:
<?php
$a = false;
$b = true;
$c = false;
if(($a && $b) || (!$a && $c)) {
echo 'false';
} else {
echo 'true';
}