Trong PHP, toán tử &
và &&
đều được sử dụng để thực hiện các phép toán logic, nhưng chúng có những đặc điểm và cách hoạt động khác nhau. Dưới đây là sự phân biệt giữa hai toán tử này:
&
(AND bit)&
là một toán tử bitwise (toán tử xử lý từng bit) dùng để thực hiện phép AND trên các giá trị số nguyên (integers). Nó so sánh từng bit tương ứng của hai toán hạng và trả về một số nguyên mới với các bit đã được xử lý.$a = 5; // (101 trong nhị phân) $b = 3; // (011 trong nhị phân) $result = $a & $b; // (101 & 011) sẽ cho ra (001) = 1 echo $result; // Kết quả: 1
&&
(AND logic)&&
là một toán tử logic dùng để kiểm tra điều kiện. Nó trả về true
nếu cả hai toán hạng đều là true
, và trả về false
nếu ít nhất một trong hai toán hạng là false
.$a = true; $b = false; $result = $a && $b; // false vì $b là false echo $result ? 'true' : 'false'; // Kết quả: false
Đặc điểm | Toán tử & | Toán tử && |
---|---|---|
Loại toán tử | Toán tử bitwise | Toán tử logic |
Kết quả | Thực hiện phép toán trên bit | Kiểm tra điều kiện |
Kiểm tra giá trị | So sánh từng bit của số | So sánh giá trị logic (true/false) |
Thực thi | Không ngừng thực thi cả hai toán hạng | Ngừng sớm nếu toán hạng đầu tiên là false (short-circuit evaluation) |
&
khi bạn cần làm việc với các bit trong số nguyên.&&
khi bạn cần kiểm tra các điều kiện logic trong mã.