理解三元运算符

时间:2015-03-30 08:43:48

标签: php ternary

我有以下示例:

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

我似乎无法理解这句话,我需要有人向我解释它是如何运作的......

2 个答案:

答案 0 :(得分:1)

$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是否为真(不是),所以执行else语句echo 'true'

答案 1 :(得分:1)

它相当于:

<?php

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

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