你如何使用三元运算符与echo /我的错误一起使用?

时间:2013-02-19 23:08:45

标签: php

我有以下PHP声明:

echo "<p><strong>Ratio:</strong> " . ($row2["losses"] == 0) ? "&infin;</p>" : number_format(($row1["wins"] / $row2["losses"]), 2) . "</p>";

我做错了什么?它每次都会出错。

2 个答案:

答案 0 :(得分:2)

echo "<p><strong>Ratio:</strong> " .( ($row2["losses"] == 0) ? "&infin;</p>" : number_format(($row1["wins"] / $row2["losses"]), 2) ). "</p>";

你需要把你的三元组放在(和)之间。

其他示例(更易读):

echo "hi i am ".( $user == "john"? "John" : "Bla")." Doe";

答案 1 :(得分:2)

您的陈述被解释为

echo ( "<p><strong>Ratio:</strong> " . ($row2["losses"] == 0) ) ? 
       "&infin;</p>" : 
       number_format(($row1["wins"] / $row2["losses"]), 2) . "</p>";

这是因为.的优先级高于? http://php.net/manual/en/language.operators.precedence.php

你需要告诉解析器三元开始和停止的位置,或者更好的是,将它分成更多的语句,这样就不会产生混淆。

echo "<p><strong>Ratio:</strong> ";
echo $row2["losses"] == 0 ? "&infin;" : number_format(($row1["wins"] /$row2["losses"]), 2);
echo "</p>";