Aktueller Standort: Startseite> Neueste Artikel> So vergleichen Sie Objekte in PHP: Erläutern Sie die Details verschiedener Vergleichsoperatoren

So vergleichen Sie Objekte in PHP: Erläutern Sie die Details verschiedener Vergleichsoperatoren

gitbox 2025-06-17

1. Vorwort

Bei der Entwicklung objektorientierter PHP-Anwendungen müssen wir häufig zwei Objekte vergleichen, z. B. festzustellen, ob sie gleich sind. In diesem Artikel wird untersucht, wie der Objektvergleich in PHP durchführt und die Anwendung verschiedener Vergleichsbetreiber tief analysiert wird.

2. Vergleich von Objekten in PHP

PHP liefert eine Vielzahl von Operatoren zum Vergleich von Objekten wie ==,! =, ==,!

Zu den gemeinsamen Vergleichsbetreibern gehören:

  • ==

    Im obigen Beispiel, da die Attributwerte von $ OBJ1 und $ OBJ2 gleich sind, ist die Ausgabe "zwei Objekte gleich".

    2.2! = Operator

    Der ! Rückgabe true , wenn die Attributwerte nicht gleich sind, ansonsten false zurückgeben.

     
    $obj1 = new stdClass();
    $obj2 = new stdClass();
    $obj1->name = 'Zhang San';
    $obj1->age = 20;
    $obj2->name = 'Li Si';
    $obj2->age = 30;
    if ($obj1 != $obj2) {
        echo 'Die Attributwerte der beiden Objekte sind nicht gleich';
    } else {
        echo 'Die Attributwerte von zwei Objekten sind gleich';
    }
    

    In diesem Beispiel, da die Attributwerte von $ OBJ1 und $ OBJ2 unterschiedlich sind, sind die Ausgabe "die Attributwerte der beiden Objekte nicht gleich".

    2.3 === Operator

    Der Operator === Operator wird verwendet, um festzustellen, ob zwei Objekte dasselbe Objekt sind, dh, ob sie auf dieselbe Speicheradresse verweisen. Geben Sie True zurück, wenn es dasselbe Objekt ist, andernfalls geben Sie false zurück.

     
    $obj1 = new stdClass();
    $obj2 = $obj1;
    if ($obj1 === $obj2) {
        echo 'Zwei Objekte sind dasselbe Objekt';
    } else {
        echo 'Zwei Objekte sind nicht dasselbe Objekt';
    }
    

    In diesem Beispiel verweist $ OBJ2 direkt auf die Speicheradresse von $ obj1 "Ausgabe" zwei Objekte sind dasselbe Objekt ".

    2.4! == Operator

    Der ! Geben Sie True zurück, wenn zwei Objekte auf verschiedene Speicheradressen verweisen, ansonsten false zurückgeben.

     
    $obj1 = new stdClass();
    $obj2 = $obj1;
    $obj3 = new stdClass();
    if ($obj1 !== $obj3) {
        echo 'Zwei Objekte sind nicht dasselbe Objekt';
    } else {
        echo 'Zwei Objekte sind dasselbe Objekt';
    }
    

    In diesem Beispiel verweisen $ OBJ1 und $ OBJ3 auf verschiedene Speicheradressen, sodass die Ausgabe "zwei Objekte nicht dasselbe Objekt sind".

    3. Das Prinzip des Objektvergleichs

    Wenn PHP den Vergleichsoperator zum Vergleich von Objekten verwendet, wird die Methode des Objekts __toString () automatisch aufgerufen, um das Objekt zum Vergleich in eine Zeichenfolge umzuwandeln. Wenn das Objekt diese Methode nicht implementiert, wird ein Fehler des "fatalen fatalen Fehlers" geworfen.

    Bei einem Objektvergleich wird daher empfohlen, um sicherzustellen, dass das Objekt die Methode __toString () implementiert, andernfalls verursacht es einen Fehler. Es ist zu beachten, dass PHP die Eigenschaftswerte von Objekten und nicht die Methoden vergleicht.

    4. Zusammenfassung

    In diesem Artikel werden Objekte in PHP verglichen, einschließlich der Verwendung verschiedener Operatoren zum Vergleich. Bei der Durchführung von Objektvergleiche sollten Entwickler auf die Eigenschaftswerte des Objekts achten und sicherstellen, dass das Objekt die __ToString () -Methode implementiert, um Fehler zu vermeiden.