我有以下 PHP 语句:
echo "<p><strong>Ratio:</strong> " . ($row2["losses"] == 0) ? "∞</p>" : number_format(($row1["wins"] / $row2["losses"]), 2) . "</p>";
我究竟做错了什么?每次都会出错。
我有以下 PHP 语句:
echo "<p><strong>Ratio:</strong> " . ($row2["losses"] == 0) ? "∞</p>" : number_format(($row1["wins"] / $row2["losses"]), 2) . "</p>";
我究竟做错了什么?每次都会出错。
您的陈述被解释为
echo ( "<p><strong>Ratio:</strong> " . ($row2["losses"] == 0) ) ?
"∞</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 ? "∞" : number_format(($row1["wins"] /$row2["losses"]), 2);
echo "</p>";
echo "<p><strong>Ratio:</strong> " .( ($row2["losses"] == 0) ? "∞</p>" : number_format(($row1["wins"] / $row2["losses"]), 2) ). "</p>";
你需要把你的三元放在 ( 和 ) 之间。
其他示例(更好的可读性):
echo "hi i am ".( $user == "john"? "John" : "Bla")." Doe";