質問

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

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

どうしたの?

役に立ちましたか?

解決

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

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

$canMerge = ($condition1 && $condition2);

他のヒント

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

$canMerge = ($condition1 && $condition2) ? true : false;

特に PHP の動作方法に矛盾があるため、これは合理的な質問のように思えます。

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

$a = '0';

if($a)
{
    echo 'its true';
}
else
{
    echo 'its false';
}
$canMerge = ($condition1 && $condition2);

それから

if ($canMerge){
    echo "Stuff";
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top