0

私は次のPHPステートメントを持っています:

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

私は何が間違っているのですか?毎回エラーになります。

4

2 に答える 2

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";
于 2013-02-19T23:09:32.913 に答える
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>";
于 2013-02-19T23:14:38.367 に答える