简体   繁体   English

简短的if-else逻辑

[英]Short if-else logic

Why this 为什么这个

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

echoes 1? 回声1? Shouldn't it echo zero? 它不应该回零吗?

utilize parenthesis! 利用括号!

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

The reason why your version echoes 'one' is because php thinks the 1st ? 您的版本回显“一个”的原因是因为php认为第一个? is part of the statement therefore if $count is equal to zero do the last possible thing (last ? ) which is 'one' 是语句的一部分,因此,如果$count等于零,则做最后一个可能的事情(last ? ),它是'one'

read up on this 阅读

While this is a pretty short list of values, you could alternatively use a map: 虽然这是一个很短的值列表,但是您也可以使用映射:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM