在三元运算符语句中排除“意外的T_ECHO”故障

时间:2010-04-23 12:19:26

标签: php ternary-operator

($DAO->get_num_rows() == 1) ? echo("is") : echo("are");

这个剂似乎对我不起作用,我收到错误“意外的T_ECHO”。我期待它回应'是'或'是'。

我试过没有条件周围的括号。我不能以这种方式使用三元运算符吗?

$DAO->get_num_rows()返回一个整数值。

4 个答案:

答案 0 :(得分:49)

三元运算符与if-then不同。你应该写它

echo ($DAO->get_num_rows() == 1) ? "is" : "are";

在第2或第3位置返回值。它不会在第二或第三位置执行语句

答案 1 :(得分:6)

三元运算符应该产生一个值 - 而不是回显它。


在这里,你可能想要这个:

echo ($DAO->get_num_rows() == 1) ? "is" : "are";


如果您想使用两个echo,则必须使用if / else块:

if ($DAO->get_num_rows() == 1) {
    echo "is";
} else {
    echo "are"
}

使用三元运算符的代码的第一部分将做同样的事情 - 除了它有点长。

答案 2 :(得分:2)

三元运算符在评估条件后返回两个值中的一个。它不应该以您使用它的方式使用。

这应该有效:

echo ($DAO->get_num_rows() == 1 ? "is" : "are");

答案 3 :(得分:0)

你可以使用

echo($ DAO-> get_num_rows()== 1)? “是”:“是”;