Neden üçlü ifade çalışmıyor?

3 Cevap php

Ben bir sayfa öğesini göstermek veya gizlemek için bir bayrak ayarlamak çalışıyorum, ama ifade yanlış olduğu zaman bile hep görüntüler.

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

Ne oldu?

3 Cevap

Bir dizge olarak 'yanlış' bir boolean true olarak değerlendirmek çünkü bu bozuldu.

Çıkan değerler true, basit ve yanlış çünkü Ancak, bu, gereksiz bir üçlü ifadesidir. Bu eşdeğer olacaktır:

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

'False' değeri doğrudur. Sen tırnak kaldırmak gerekir:

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

Özellikle yol php çalışmalarında tutarsızlık çünkü makul bir soru gibi geliyor bana

Örneğin 'onun sahte' Aşağıdaki kod irade çıktı

$a = '0';

if($a)
{
echo 'its true';
}
else
{
echo 'its false';
}