Neden benim üçlü ifadesi çalışmıyor?

oy
21

Ben göstermek veya bir sayfa öğesini gizlemek için bir bayrak ayarlamak için çalışıyorum, ancak ifade yanlış olduğunda bile her zaman görüntülenir.

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

Naber?

Oluştur 05/08/2008 saat 01:56
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
37

bir dize olarak 'yanlış' boolean olarak true değerlendirecek çünkü bu bozuldu.

Ortaya çıkan değerler true ve false basit çünkü Ancak, bu gereksiz bir üçlü ifadesi vardır. Bu eşdeğer olacaktır:

$canMerge = ($condition1 && $condition2);
Cevap 05/08/2008 saat 02:03
kaynak kullanıcı

oy
2

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

$canMerge = ($condition1 && $condition2) ? true : false;
Cevap 05/08/2008 saat 01:57
kaynak kullanıcı

oy
0

özellikle çünkü PHP çalışır şekilde farklılık mantıklı bir soru gibi geliyor bana.

Örneğin, aşağıdaki kod çıktısı 'onun yanlış'

$a = '0';

if($a)
{
    echo 'its true';
}
else
{
    echo 'its false';
}
Cevap 28/09/2012 saat 04:15
kaynak kullanıcı

oy
-1
$canMerge = ($condition1 && $condition2);

sonra

if ($canMerge){
    echo "Stuff";
}
Cevap 16/05/2014 saat 19:50
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more