หากคุณใช้AND
และOR
ในที่สุดคุณก็จะได้รับสิ่งที่ชอบเช่นนี้:
$this_one = true;
$that = false;
$truthiness = $this_one and $that;
ต้องการเดาว่า$truthiness
เท่ากับอะไร?
ถ้าคุณพูดว่าfalse
... bzzzt ขอโทษผิด!
$truthiness
true
ดังกล่าวข้างต้นมีค่า ทำไม? =
มีลำดับความสำคัญสูงand
กว่า การเพิ่มวงเล็บเพื่อแสดงลำดับโดยนัยทำให้ชัดเจนยิ่งขึ้น:
($truthiness = $this_one) and $that
หากคุณใช้&&
แทนในตัวอย่างรหัสแรกก็จะทำงานตามที่คาดไว้และand
false
ตามที่กล่าวไว้ในความคิดเห็นด้านล่างนี้ยังทำงานเพื่อรับค่าที่ถูกต้องเนื่องจากวงเล็บมีลำดับความสำคัญสูงกว่า=
:
$truthiness = ($this_one and $that)
~
เป็นตัวดำเนินการ NOT ที่ชาญฉลาดไม่ใช่ตรรกะ ;-)