Sự khác biệt giữa == và === là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
1.082 lượt xem
PHP basic
  • Toán tử == chuyển đổi kiểu giữa hai kiểu khác nhau nếu chúng khác nhau.
  • Toán tử === thực hiện một "so sánh an toàn kiểu (typesafe comparison)", điều đó có nghĩa là nó sẽ chỉ trả về true nếu cả hai toán hạng có cùng kiểu và cùng giá trị.
1 === 1: true
1 == 1: true
1 === "1": false // 1 is an integer, "1" is a string
1 == "1": true // "1" gets casted to an integer, which is 1
"foo" === "foo": true // both operands are strings and have the same value

Cảnh báo: hai instance của cùng một lớp với các thành viên tương đương nhau sẽ KHÔNG khớp với toán tử ===, ví dụ:

$a = new stdClass();
$a->foo = "bar";
$b = clone $a;
var_dump($a === $b); // bool(false)
{{login.error}}