Cả hai đều là toán tử logic AND (trả về true nếu cả hai vế true). Khác nhau ở độ ưu tiên (precedence).
&&: Ưu tiên cao.and: Ưu tiên thấp.
Ví dụ minh họa
<?php
$a = 10;
$b = null;
$val = $a && $b; // && trước, gán sau -> $val = false
echo ($val ? 'TRUE' : 'FALSE') . "\n"; // FALSE
$val = $a and $b; // = trước, and sau -> $val = $a = 10 (truthy)
echo ($val ? 'TRUE' : 'FALSE'); // TRUE
?>
Giải thích
$val = $a && $bequivalent$val = ($a && $b)-> gán kết quả logic.$val = $a and $bequivalent($val = $a) and $b-> gán$avào$val, rồi logicand(kết quả bỏ qua).
Khuyên dùng
Luôn dùng && và || cho logic điều khiển (if, while). Dùng and/or chỉ khi rõ ràng ý định gán trước, logic sau (hiếm).