($DAO->get_num_rows() == 1) ? echo("is") : echo("are");
这个剂似乎对我不起作用,我收到错误“意外的T_ECHO”。我期待它回应'是'或'是'。
我试过没有条件周围的括号。我不能以这种方式使用三元运算符吗?
$DAO->get_num_rows()
返回一个整数值。
答案 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)? “是”:“是”;