Heim  >  Artikel  >  Backend-Entwicklung  >  So kopieren Sie ein Objektarray in PHP

So kopieren Sie ein Objektarray in PHP

王林
王林Original
2023-05-22 22:11:06857Durchsuche

Mit der anhaltenden Beliebtheit von PHP als hervorragende Back-End-Sprache wird sein Anwendungsbereich immer umfangreicher. Das Objektarray in PHP ist ein sehr häufiger Datentyp. In der tatsächlichen Entwicklung müssen wir häufig Objektarrays verwenden oder kopieren. In diesem Artikel wird vorgestellt, wie man ein Objektarray in PHP kopiert, um PHP-Entwicklern dabei zu helfen, Objektarrays besser zu verarbeiten.

1. Definition eines Objektarrays

Objektarray ist ein Datentyp, der Objekte in einem Array speichert. In PHP kann ein Objekt eine einzelne Instanz oder eine Instanz einer Klasse sein. Durch das Einfügen eines Objekts in ein Array kann der Zweck des Speicherns und Betreibens mehrerer Objekte erreicht werden, was für die Verarbeitung komplexer Datenstrukturen sehr praktisch ist.

2. Objektarrays kopieren

In PHP gibt es zwei Methoden zum Kopieren von Objektarrays: flaches Kopieren und tiefes Kopieren.

1. Flaches Kopieren

Beim flachen Kopieren wird ein Objektarray kopiert, sodass das neue Array und das ursprüngliche Array auf dasselbe Objekt verweisen. Das heißt, wenn ein Objekt in einem der Arrays geändert wird, wird auch das entsprechende Objekt im anderen Array geändert. Die Syntax des flachen Kopierens lautet wie folgt:

$new_array = $original_array;

Verwenden Sie den obigen Code, um ein Objektarray einem anderen Array zuzuweisen.

2. Deep Copy

Deep Copy dient zum Kopieren eines Objektarrays und alle darin enthaltenen Objekte werden neu erstellt. Das bedeutet, dass die Änderung eines Objekts in einem der Arrays keine Auswirkungen auf die entsprechenden Objekte in den anderen Arrays hat. Die Syntax von Deep Copy lautet wie folgt:

$new_array = unserialize(serialize($original_array));

Durch Serialisieren und erneutes Deserialisieren des ursprünglichen Arrays in ein neues Array kann ein tiefes Kopieren aller Objekte erreicht werden, und die beiden Arrays sind zu diesem Zeitpunkt völlig unabhängig.

3. Beispiel eines Objektarrays

Das Folgende ist ein einfaches Objektarray-Beispiel:

class Fruit {
  public $name;
  public $color;

  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
}

$fruits = array(
  new Fruit('apple', 'red'),
  new Fruit('banana', 'yellow')
);

Mithilfe der flachen Kopiertechnologie können wir das $fruits-Array dem $new_fruits-Array zuweisen:

$new_fruits = $fruits;

Jetzt ändern Sie eines der Objekte, Sehen Sie, was passiert:

$new_fruits[0]->name = 'orange';

echo $fruits[0]->name; //输出orange
echo $new_fruits[0]->name; //输出orange

Aufgrund der flachen Kopie verweisen das $new_fruits-Array und das $fruits-Array auf dasselbe Objekt, sodass sich eine Änderung des einen auf das andere auswirkt.

Verwenden Sie nun die Deep-Copy-Technik:

$new_fruits = unserialize(serialize($fruits));

Ändern Sie ein Objekt:

$new_fruits[0]->name = 'orange';

echo $fruits[0]->name; //输出apple
echo $new_fruits[0]->name; //输出orange

Aufgrund der Deep-Copy-Methode sind die Objekte in den beiden Arrays unabhängig, sodass sich eine Änderung des einen nicht auf das andere auswirkt.

4. Zusammenfassung

In PHP ist das Objektarray ein sehr praktischer Datentyp, der problemlos mehrere Objekte speichern und bedienen kann. Beim Kopieren eines Objektarrays können wir eine flache Kopie oder eine tiefe Kopie verwenden. Bei einer flachen Kopie verweist das neue Array auf dieselben Objekte wie das ursprüngliche Array, während bei einer tiefen Kopie alle Objekte kopiert werden, um ein völlig neues Array zu erstellen. Ich hoffe, dass dieser Artikel PHP-Entwicklern helfen kann.

Das obige ist der detaillierte Inhalt vonSo kopieren Sie ein Objektarray in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn