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

the*_*man 23 php ternary-operator

($DAO->get_num_rows() == 1) ? echo("is") : echo("are");
Run Code Online (Sandbox Code Playgroud)

这个剂似乎对我不起作用,我得到一个错误"意外的T_ECHO".我期待它回应'是'或'是'.

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

$DAO->get_num_rows()返回的整数值.

MJB*_*MJB 52

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

echo ($DAO->get_num_rows() == 1) ? "is" : "are";
Run Code Online (Sandbox Code Playgroud)

返回第2或第3位的值.它不会在第2或第3位执行语句.


Pas*_*TIN 6

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


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

echo ($DAO->get_num_rows() == 1) ? "is" : "are";
Run Code Online (Sandbox Code Playgroud)


如果你想使用两个echo,你将不得不使用if/ elseblock:

if ($DAO->get_num_rows() == 1) {
    echo "is";
} else {
    echo "are"
}
Run Code Online (Sandbox Code Playgroud)

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