10

PHPマニュアルで例を見ました:

<?php
$var = TRUE;
echo $var==TRUE ? 'TRUE' : 'FALSE'; // get TRUE
echo $var==FALSE ? 'TRUE' : 'FALSE'; // get FALSE
?>

単一行出力の一部として同様のものを統合しようとしています。私の行は次のようになります。

echo "...text..." . $db_field['late']==0 ? ' ' : $db_field['late']  . "...more text...";

論理的に私がやりたいことは次のとおりです。「late」= 0 の場合、他に何も表示せず、「late」のコンテンツを表示します。

私は賢くなりすぎているだけですか?

4

2 に答える 2

30

三項演算子の優先順位?:が非常に低いためです。これを修正するには、ブラケットを使用します

echo "...text..." . ($db_field['late']==0 ? ' ' : $db_field['late']) . "...more text...";

PHP 演算子の優先順位

于 2013-06-10T02:12:30.260 に答える
3
echo "...text..." . ( $db_field['late']==0 ? ' ' : $db_field['late'] )  . "...more text...";
于 2013-06-10T02:12:43.057 に答える