ความแตกต่างหลักระหว่างตัวดำเนินการ AND กับ && อยู่ที่ลำดับความสำคัญ (Precedence) เมื่อเปรียบเทียบกับตัวดำเนินการกำหนดค่า = ตัวดำเนินการ AND มีลำดับความสำคัญต่ำกว่า = ทำให้ผลลัพธ์แตกต่างกันแม้ทั้งคู่จะทำหน้าที่ตรรกะเดียวกัน
ตัวอย่างการใช้งาน AND
<?php $val1 = 55; $val2 = 65; if ($val1 == 55 and $val2 == 65) echo "Result = True"; else echo "Result = False"; ?>
ผลลัพธ์
Result = True
ตัวอย่างการใช้งาน &&
<?php $val1 = 110; $val2 = 110; if ($val1 == 110 && $val2 == 110) echo "Result = True"; else echo "Result = False"; ?>
ผลลัพธ์
Result = True
ตัวอย่างเปรียบเทียบความแตกต่างในกรณีเดียว
<?php $bool = TRUE and FALSE; echo ($bool ? 'true' : 'false'), "\n"; $bool = TRUE && FALSE; echo ($bool ? 'true' : 'false'); ?>
ผลลัพธ์
true false
คำอธิบาย: ในกรณีแรก $bool = TRUE and FALSE จะถูกประมวลผลเป็น ($bool = TRUE) and FALSE เนื่องจาก AND มี precedence ต่ำกว่า = ทำให้ $bool ได้ค่า TRUE ส่วนกรณีที่สอง $bool = TRUE && FALSE จะประมวลผลเป็น $bool = (TRUE && FALSE) เนื่องจาก && มี precedence สูงกว่า ทำให้ $bool ได้ค่า FALSE