a + b = 3
a + x = 2
x + a = 2
Ghép chuỗi: Xin chào
Phân biệt == và === :a và x khác nhau
Biến a có kiểu số nguyên (int) với giá trị 1.
Biến x có kiểu chuỗi (string) với giá trị 1.
PHP khi thực hiện phép cộng (+) tự động ép kiểu các biến sang kiểu số để thực hiện phép toán, vì vậy a + x và x + a đều cho kết quả 2.
Nhưng trong phép so sánh:
== (so sánh bằng) chỉ so sánh về giá trị, PHP sẽ tự ép kiểu nếu cần để so sánh, nên 1 == 1 trả về true.
=== (so sánh bằng kiểu và giá trị) so sánh cả kiểu dữ liệu và giá trị, nên 1 === 1 trả về false vì a là int, x là string.
dòng 21 hiện tại: sẽ trả về false, dẫn đến in ra a và x khác nhau.
muốn xuất ra a và x giống nhau, có 2 cách:
Cách 1: Dùng so sánh chỉ về giá trị, không xét kiểu (dùng ==)
if(a == x) Kết quả in ra sẽ là a và x giống nhau vì 1 == 1 đúng.
Cách 2: Ép kiểu biến trước rồi so sánh tuyệt đối
if(a === (int)x)