Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung der PHP -Objektvergleichsmethode: Verwenden Sie den PHP -Operator zum Objektvergleich

Detaillierte Erläuterung der PHP -Objektvergleichsmethode: Verwenden Sie den PHP -Operator zum Objektvergleich

gitbox 2025-06-17

1. Vorwort

Der Vergleich der Beziehung zwischen Objekten ist eine gemeinsame Operation bei der Entwicklung objektorientierter PHP-Anwendungen, insbesondere bei der Beurteilung, ob zwei Objekte gleich sind. In diesem Artikel werden eingehende Methoden und Prinzipien des Objektvergleichs in PHP untersucht.

2. Vergleich von Objekten in PHP

In PHP können wir Vergleichsoperatoren (z. B. ==,! =, ===,! ==) verwenden, um Objekte zu vergleichen. Diese Operatoren können helfen, festzustellen, ob zwei Objekte gleich sind, zum gleichen Typ gehören und denselben Wert enthalten. Hier finden Sie eine detaillierte Beschreibung jedes Vergleichsbetreibers:

  • ==: Bestimmen Sie, ob die Attributwerte der beiden Objekte gleich sind.
  • ! =: Bestimmen Sie, ob die Attributwerte der beiden Objekte nicht gleich sind.
  • ===: Bestimmen Sie, ob zwei Objekte das gleiche Objekt sind (dh und zeigen auf dieselbe Speicheradresse).
  • !

2.1 == Operator

Bei Verwendung des Operators "==" vergleicht PHP, ob die Eigenschaftswerte der beiden Objekte gleich sind. Geben Sie true zurück, wenn dieselbe, ansonsten false zurückgeben.

 $obj1 = new stdClass();
$obj2 = new stdClass();
$obj1->name = 'Zhang San';
$obj1->age = 20;
$obj2->name = 'Zhang San';
$obj2->age = 20;

if ($obj1 == $obj2) {
    echo 'Zwei Objekte sind gleich';
} else {
    echo 'Zwei Objekte sind nicht gleich';
}

In dem obigen Code, da die Attributwerte der beiden Objekte gleich sind, sind die Ausgabe "zwei Objekte gleich".

2.2! = Operator

Der Operator "! =" Wird verwendet, um zu überprüfen, ob die Attributwerte von zwei Objekten nicht gleich sind. Rückgabe true, wenn nicht gleich, ansonsten false zurück.

 $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';
}

Da die Attributwerte der beiden Objekte unterschiedlich sind, gibt der Code "die Attributwerte der beiden Objekte nicht gleich" aus. "

2.3 === Operator

Der Operator "===" wird verwendet, um zu überprüfen, ob zwei Objekte das gleiche Objekt sind, d. H. Ob sie auf dieselbe Speicheradresse verweisen.

 $obj1 = new stdClass();
$obj2 = $obj1;

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

Da $ OBJ2 im obigen Code auf die Speicheradresse von $ OBJ1 verweist, sind die Ausgabe "zwei Objekte das gleiche Objekt".

2.4! == Operator

Der Operator "! Geben Sie True zurück, wenn sie auf verschiedene Speicheradressen hinweisen, 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';
}

Da $ OBJ1 und $ OBJ3 auf verschiedene Speicheradressen hinweisen, gibt der Code "zwei Objekte nicht dasselbe Objekt" aus.

3.. Das Prinzip des Vergleichs von Objekten

Wenn PHP einen Objektvergleich ausführt, wird die Methode des Objekts __toString () standardmäßig aufgerufen, um das Objekt in eine Zeichenfolge umzuwandeln und es dann zu vergleichen. Wenn das Objekt die Methode __toString () nicht implementiert, wird ein tödlicher Fehler erzeugt. Um dieses Problem zu vermeiden, wird empfohlen, sicherzustellen, dass das Objekt die Methode bei Objektvergleiche implementiert.

Es ist zu beachten, dass PHP die Attributwerte des Objekts vergleichen, die Methoden jedoch nicht vergleichen, wenn sie Objekte vergleicht. Wenn die beiden Objekte die gleichen Eigenschaften haben, aber unterschiedliche Methoden, betrachtet PHP sie weiterhin als gleich.

4. Zusammenfassung

In diesem Artikel werden gemeinsame Methoden zum Vergleich von Objekten in PHP- und verwandten Operatoren eingeführt (==,! =, ==,! ==). Beim Vergleich von Objekten sollten wir uns auf die Eigenschaftswerte des Objekts und nicht auf die Unterschiede in den Methoden konzentrieren. Stellen Sie gleichzeitig sicher, dass das Objekt die Methode __toString () implementiert, um Fehler während des Vergleichs zu vermeiden.