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

Php “故障排除”;意料之外的T_ECHO“;在三元运算符语句中,php,ternary-operator,Php,Ternary Operator,这似乎不是我想要的,我得到了一个错误“意外的T_回声”。我希望它能回应“是”或“是” 我已经试过了,没有条件括号。难道我不能用这种方式使用三元运算符吗 $DAO->get_num_rows()返回一个整数值。三元运算符与if-then不同。你应该写的 ($DAO->get_num_rows() == 1) ? echo("is") : echo("are"); 它返回第二或第三位置的值。它不会在第二或第三位置执行语句。U可以使用 echo($DAO->get_num_rows()==1)

这似乎不是我想要的,我得到了一个错误“意外的T_回声”。我希望它能回应“是”或“是”

我已经试过了,没有条件括号。难道我不能用这种方式使用三元运算符吗


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

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

($DAO->get_num_rows() == 1) ? echo("is") : echo("are");
返回第二或第三位置的值。它不会在第二或第三位置执行语句。

U可以使用


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

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


在这里,您可能需要:

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

如果要使用两个
echo
,则必须使用
If
/
else
块:

echo ($DAO->get_num_rows() == 1) ? "is" : "are";
这将与使用三元运算符的代码的第一部分做相同的事情——只是它有点长。

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

这应该起作用:

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

考虑使用模板,而不是直接从业务Logigo返回它的值,如果它返回代码< > Engule<代码> > <代码>打印/ <代码>它有效吗?@ MaGeEK——它是“工作的”吗?或者它不会死?仅仅因为它打印了一些东西并不意味着它做了OP想要的事情。我的建议应该是这样的。我想了解为什么
($DAO->get_num_rows()==1)?打印(“是”):打印(“是”)
可以工作,但是
($DAO->get_num_rows()==1)?回声(“是”):回声(“是”)
没有。@Mageek:我不确定,但是如果我不得不猜测的话,我会说“print”返回一个值,所以这很好,但是“echo”不返回任何东西,因此函数不起作用。仍然对我很有帮助
echo ($DAO->get_num_rows() == 1 ? "is" : "are");