Bu PHP ifadeler eğer arasındaki fark nedir?

6 Cevap php

Bu PHP arasındaki fark nedir ifadeler eğer!?

if ($var !== false)
{
    // Do something!
}


if (false !== $var)
{
    // Do something!
}

Geleneksel ilk ise Zend Framework gibi bazı çerçeveler, son şeklini kullanır.

Şimdiden teşekkürler

6 Cevap

ifadenin sonucu ancak atama yerine (örneğin, yazma karşılaştırarak kendinizi korumanın iyi bir yolu aynı if ($ var = false) yerine if ($ var == false), size değer atanamıyor beri $ "false" anahtar kelime için var)

Bu gerçekten sadece bir tercih değil. Sen == Bir bunu iki şekilde, bir == b veya b koyabilirsiniz, ama eğer bir hata yapmak daha kolay

if ($var == false)

çünkü yanlışlıkla tek = harf ile yazarsanız, ($ var başarıyla ayarlanmış olacak çünkü) true her zaman olacak eşit durum, ancak bu durumda

if (false == $var)

Şimdi = koyarsanız, bir hata alırsınız.

İki ifadeler anlam aynıdır. İlk sabit ifadesini koymak ya son verip sadece bir tercih meselesi.

Gerçek bir fark yoktur. Işlenen farklı yanları üzerinde sadece ama karşılaştırma yine aynıdır.

Hiçbir fark yoktur. !== tip denetimi ile 2 ifadeleri karşılaştırır ve eşit değilse true döndürür. Fark ifadelerin değerlendirilmesi amacıyla olabilir, ancak yazdığın durumda, hiçbir fark yoktur (ve iyi bir program gibi ifadelerle yürütme sırasına güvenmek gerekir).

Bu senaryoyu düşünün:

if (strpos($string, $substring)) { /* found it! */ } 

If $substring is found at the exact start of $string, the value returned is 0. Unfortunately, inside the if, this evaluates to false, so the conditional is not executed.

Bu işlemek için doğru bir yol olacaktır:

if (false !== strpos($string, $substring)) { /* found it! */ }

Conclusion:

false her zaman yanlış olduğu garantilidir. Diğer değerleri bu garanti olmayabilir. Örneğin, PHP 3, empty('0') true, ama daha sonra false değiştirildi.