Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

เปรียบเทียบ && และ AND Operator ใน PHP


PHP มี logical operators && และ AND ทั้งคู่คืนค่า true/false (Boolean operators) แตกต่างกันที่ precedence (ลำดับความสำคัญ)

AND Operator

คืน true ก็ต่อเมื่อทั้งสองเงื่อนไขเป็น true

ตัวอย่าง

<?php 
$val1 = 20; $val2 = 50; 
if ($val1 == 20 and $val2 == 50) echo "True"; else echo "False"; 
?>

ผลลัพธ์

True

&& Operator

ทำงานเหมือน AND แตกต่างที่ precedence สูงกว่า

ตัวอย่าง

<?php 
$val1 = 25; $val2 = 5; 
if ($val1 == 25 && pow($val2, 2) == $val1) echo "True"; else echo "False"; 
?>

ผลลัพธ์

True

ความแตกต่างของ Precedence

<?php 
$a = 10; $b = NULL; 
$val = $a && $b; 
echo ($val ? 'TRUE' : 'FALSE'), "\n"; 
$val = $a and $b; 
echo ($val ? 'TRUE' : 'FALSE'); 
?>

ผลลัพธ์

FALSE TRUE

คำอธิบาย

$val = $a && $b: && precedence สูงกว่า = ดังนั้น $a && $b คำนวณก่อน (false) แล้ว assign ให้ $val

$val = $a and $b: and precedence ต่ำกว่า = ดังนั้น $a (=10) assign ให้ $val ก่อน แล้วค่อยทำ and (แต่ผลไม่ถูก assign) $val จึงเป็น 10 (true)

สรุป: && และ AND ทำงานตรรกะเหมือนกัน แตกต่างแค่ precedence: && สูงกว่า and