26

ページ要素を表示または非表示にするフラグを設定しようとしていますが、式が false の場合でも常に表示されます。

$canMerge = ($condition1 && $condition2) ? 'true' : 'false';
...
<?php if ($canMerge) { ?>Stuff<?php } ?>

調子はどう?

4

4 に答える 4

41

これは、文字列としての 'false' がブール値として true に評価されるため、壊れています。

ただし、結果の値は単純な true と false であるため、これは不要な 3 項式です。これは同等です:

$canMerge = ($condition1 && $condition2);
于 2008-08-05T01:03:12.553 に答える
1

「偽」の値は真です。引用符を削除する必要があります。

$canMerge = ($condition1 && $condition2) ? true : false;
于 2008-08-05T00:57:30.863 に答える
0

特に PHP の動作に矛盾があるため、私には妥当な質問のように思えます。

たとえば、次のコードは 'its false' を出力します。

$a = '0';

if($a)
{
    echo 'its true';
}
else
{
    echo 'its false';
}
于 2012-09-28T03:15:59.343 に答える