Trong PHP, toán tử &&& đề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:

1. Toán tử & (AND bit)

  • Chức năng: Toán tử & 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ý.
  • Sử dụng: Thích hợp khi bạn cần thao tác với các bit của số.
  • Ví dụ:
$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

2. Toán tử && (AND logic)

  • Chức năng: Toán tử && 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.
  • Sử dụng: Thích hợp cho các biểu thức điều kiện trong các câu lệnh điều kiện, vòng lặp, hoặc khi kiểm tra nhiều điều kiện.
  • Ví dụ:
$a = true;
$b = false;

$result = $a && $b; // false vì $b là false
echo $result ? 'true' : 'false'; // Kết quả: false

Sự khác biệt chính

Đặc điểmToán tử &Toán tử &&
Loại toán tửToán tử bitwiseToán tử logic
Kết quảThực hiện phép toán trên bitKiể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 thiKhông ngừng thực thi cả hai toán hạngNgừng sớm nếu toán hạng đầu tiên là false (short-circuit evaluation)

Tóm tắt

  • Sử dụng & khi bạn cần làm việc với các bit trong số nguyên.
  • Sử dụng && khi bạn cần kiểm tra các điều kiện logic trong mã.