Trong PHP, ==
và ===
là hai toán tử so sánh được sử dụng để so sánh giá trị của hai biến. Tuy nhiên, chúng có những cách hoạt động khác nhau. Dưới đây là sự khác biệt chính giữa chúng:
==
(So sánh bằng)true
nếu giá trị của hai biến là bằng nhau sau khi chuyển đổi kiểu, ngược lại trả về false
.Ví dụ:
$a = 5; // int $b = "5"; // string if ($a == $b) { echo "$a và $b là bằng nhau (==)"; // Kết quả: 5 và 5 là bằng nhau (==) }
Trong ví dụ này, 5
(int) và "5"
(string) được so sánh và trả về true
vì PHP chuyển đổi "5"
thành số nguyên 5
trước khi so sánh.
===
(So sánh bằng tuyệt đối)false
ngay lập tức.true
chỉ khi cả giá trị và kiểu của hai biến là bằng nhau, ngược lại trả về false
.Ví dụ:
$a = 5; // int $b = "5"; // string if ($a === $b) { echo "$a và $b là bằng nhau (===)"; } else { echo "$a và $b là khác nhau (===)"; // Kết quả: 5 và 5 là khác nhau (===) }
Trong ví dụ này, 5
(int) và "5"
(string) được so sánh và trả về false
vì mặc dù giá trị bằng nhau, nhưng kiểu dữ liệu khác nhau.
==
: So sánh chỉ giá trị. PHP sẽ tự động chuyển đổi kiểu nếu cần.===
: So sánh cả giá trị và kiểu. Không có chuyển đổi kiểu, cả hai phải giống hệt nhau.Việc hiểu rõ sự khác biệt này rất quan trọng trong việc lập trình với PHP để tránh những lỗi không mong muốn trong quá trình so sánh các biến.