Eğer kullanıyorsanız AND
ve OR
, sonunda böyle bir şey kaçırmaktadır edeceğiz:
$this_one = true;
$that = false;
$truthiness = $this_one and $that;
Neye $truthiness
eşit olduğunu tahmin etmek ister misiniz ?
Eğer false
dediysen ... bzzzt, üzgünüm, yanlış!
$truthiness
Yukarıdaki değere sahiptir true
. Neden? =
Bir sahiptir yüksek önceliğe göre and
. Örtük düzeni göstermek için parantez eklenmesi bunu daha açık hale getirir:
($truthiness = $this_one) and $that
İlk kod örneğinde kullanmak &&
yerine, and
beklendiği gibi çalışacak ve olacak false
.
Aşağıdaki yorumlarda tartışıldığı gibi, parantezlerin önceliği daha yüksek olduğundan, bu doğru değeri elde etmek için de çalışır =
:
$truthiness = ($this_one and $that)
~
mantıksal değil, bit bilge DEĞİL operatörü olduğunu unutmayın . ;-)