Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

So sánh đối tượng trong PHP

Giới thiệu

PHP cung cấp hai toán tử so sánh đối tượng:

  • == (bằng nhau): Trả về true nếu cả hai thuộc cùng một lớp và các thuộc tính tương ứng có giá trị giống nhau.
  • === (đồng nhất): Trả về true chỉ khi chúng tham chiếu đến cùng một instance (thể hiện) của cùng một lớp.

Chúng ta sử dụng hai lớp sau để minh họa:

<?php
class test1 {
    private $x;
    private $y;
    function __construct($arg1, $arg2) {
        $this->x = $arg1;
        $this->y = $arg2;
    }
}
class test2 {
    private $x;
    private $y;
    function __construct($arg1, $arg2) {
        $this->x = $arg1;
        $this->y = $arg2;
    }
}
?>

1. Hai đối tượng cùng lớp, cùng giá trị thuộc tính

$a = new test1(10, 20);
$b = new test1(10, 20);
echo "Hai đối tượng cùng lớp\n";
echo "Sử dụng == : ";
var_dump($a == $b);
echo "Sử dụng === : ";
var_dump($a === $b);

Kết quả

Hai đối tượng cùng lớp
Sử dụng == : bool(true)
Sử dụng === : bool(false)

2. Hai tham chiếu trỏ đến cùng một đối tượng

$a = new test1(10, 20);
$c = $a;
echo "Hai tham chiếu cùng đối tượng\n";
echo "Sử dụng == : ";
var_dump($a == $c);
echo "Sử dụng === : ";
var_dump($a === $c);

Kết quả

Hai tham chiếu cùng đối tượng
Sử dụng == : bool(true)
Sử dụng === : bool(true)

3. Hai đối tượng khác lớp nhưng cùng giá trị thuộc tính

$a = new test1(10, 20);
$d = new test2(10, 20);
echo "Hai đối tượng khác lớp\n";
echo "Sử dụng == : ";
var_dump($a == $d);
echo "Sử dụng === : ";
var_dump($a === $d);

Kết quả

Hai đối tượng khác lớp
Sử dụng == : bool(false)
Sử dụng === : bool(false)