简短的if-else逻辑

时间:2011-03-22 19:02:01

标签: php if-statement

为什么会这样

$count = 0;
   echo $count === 0
    ? 'zero'
    : $count === 1
     ? 'one'
     : 'more';

回响1?它不应该回零吗?

2 个答案:

答案 0 :(得分:3)

使用括号!

echo ($count === 0 ? 'zero' :($count === 1 ? 'one': 'more') );

你的版本回应'one'的原因是因为php认为第一个?是声明的一部分,因此如果$count等于零,那么做最后一件事(? })这是'one'

阅读this

答案 1 :(得分:1)

虽然这是一个很短的值列表,但您也可以使用地图:

$map = array("zero", "one", "more");
echo $map[min($count,2)];     // trick: 2 becomes max value via min()