PHP steno sözdizimi

2 Cevap php

Ben sadece this GitHub rastladım ettik.

 ($config === NULL) and $config = Kohana::config('email');

Olduğu eşdeğer

if ($config === NULL) {
    $config = Kohana::config('email');
}

Bu sıradan mı? Ben bekleyebileceğiniz diğer geliştiricilerin ben ilk yolu anında ne yaptığını bilmek için kullandık eğer benim koduna bakıyoruz?

2 Cevap

Bana bunu elde etmek için bir saniye sürdü, ama bu aslında hemen her programlama dilinde çalışması gerekir. Çünkü soldaki deyimi yanlış ise "ve" veya "veya" operatörleri lazily değerlendirilir, daha sonra tüm ifadesi her zaman (false ve true false false) olacaktır, çünkü tabloların geri kalanını değerlendirmek için gerek yoktur. Aynı şekilde, birlikte "ya da" bunu yapabilir, ama soldaki deyimi, gerçek olamayacak kadar sonra sağda biri wouldn't değerlendirilmelidir olurdu.

PS: Gerçekten ne sağda bulunuyor gerçekten bir mantıksal ifade olmadığı bu durumda önemli değildir; sadece $config doğruluk değerleri alacağım

AND bir PHP mantıksal operatör.

($config === NULL) and $config = Kohana::config('email');

eşdeğer sonucu (but has a lesser operator precedence ) vardır

($config === NULL) && $config = Kohana::config('email');

Şahsen, herhangi bir karışıklığı önlemek için ben ikinci yaklaşım kullanmak istiyorsunuz.