Platzieren Sie Objekte in PHP-Arrays?

PHPz
Freigeben: 2023-04-18 09:17:49
Original
506 Leute haben es durchsucht

In PHP können Arrays verschiedene Datentypen speichern, darunter Zeichenfolgen, Zahlen, Boolesche Werte und Objekte. In Arrays gespeicherte Objekte stellen ein sehr interessantes Problem dar, denn wenn wir ein Objekt in einem Array speichern, können wir Arrays problemlos verwenden, um Sammlungen dieser Objekte zu verwalten und zu manipulieren. Allerdings sind Objekte im Speicher zustandsbehaftet, während Arrays zustandslos sind. Daher müssen wir uns überlegen, wie Objekte in Arrays gespeichert und richtig verwendet werden.

Zunächst können Sie das Objekt in einem Array speichern. Das Objekt bezieht sich hier auf das Instanziierungsobjekt der Klasse, also auf das Objekt, das durch das neue Schlüsselwort erstellt wurde. Definieren Sie beispielsweise eine Person-Klasse und erstellen Sie dann zwei Objekte:

class Person {
    public $name;
    public $age;
}

$p1 = new Person();
$p1->name = 'Tom';
$p1->age = 20;

$p2 = new Person();
$p2->name = 'John';
$p2->age = 30;

$persons = [$p1, $p2];
Nach dem Login kopieren

Indem wir die Objekte $p1 und $p2 im Array $persons speichern, können wir jedes Objekt im Array problemlos mit einer foreach-Schleife durchlaufen, wie folgt:

foreach ($persons as $p) {
    echo $p->name . ' is ' . $p->age . ' years old.';
}
Nach dem Login kopieren

Auf die gleiche Weise können wir eine for-Schleife, eine while-Schleife usw. verwenden, um die Objekte im Array zu durchlaufen.

Es ist jedoch wichtig zu beachten, dass es einige subtile Unterschiede beim Speichern von Objekten in Arrays gibt. In PHP 5 werden Objekte in Arrays als Referenz übergeben, was bedeutet, dass, wenn wir die Eigenschaften eines Objekts im Array ändern, auch das ursprüngliche Objekt geändert wird. Beispiel:

$p = new Person();
$p->name = 'Tom';
$p->age = 20;

$persons = [$p];

$persons[0]->name = 'John';

echo $p->name;  // 输出 John
Nach dem Login kopieren

Hier wird das Objekt $p im Array $persons gespeichert. Nach dem Ändern der Eigenschaften des $p-Objekts im Array $persons wird auch das ursprüngliche $p-Objekt geändert.

In PHP 7 werden Objekte in Arrays als Wert übergeben, was sich von PHP 5 unterscheidet. Dies bedeutet, dass beim Ändern von Objekteigenschaften im Array das ursprüngliche Objekt nicht geändert wird. Beispiel:

$p = new Person();
$p->name = 'Tom';
$p->age = 20;

$persons = [$p];

$persons[0]->name = 'John';

echo $p->name;  // 输出 Tom
Nach dem Login kopieren

Hier wird das Objekt $p im Array $persons gespeichert. Nach dem Ändern der Eigenschaften des $p-Objekts im Array $persons wurde das ursprüngliche $p-Objekt nicht geändert.

Wenn wir also ein Array zum Speichern von Objekten verwenden, müssen wir klar wissen, ob das Objekt als Wert oder als Referenz übergeben wird. Bei der Übergabe als Referenz müssen wir beachten, dass beim Ändern der Objekte im Array möglicherweise das ursprüngliche Objekt geändert wird. Wenn wir einen Wert übergeben, können wir das im Array gespeicherte Objekt entsprechend unseren Anforderungen ändern, ohne das ursprüngliche Objekt zu beeinträchtigen.

Kurz gesagt, wir können Arrays zum Speichern von Objekten verwenden, sodass wir Objektsammlungen einfach verwalten und betreiben können. Es ist wichtig zu beachten, dass die im Array gespeicherten Objekte als Wert oder Referenz übergeben werden. Dies müssen wir berücksichtigen, um die Objekte im Array korrekt verwenden zu können.

Das obige ist der detaillierte Inhalt vonPlatzieren Sie Objekte in PHP-Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage