HOWTO · PHP
Ein Array aus Objekten in PHP erstellen
Dieser Artikel zeigt, wie Sie in PHP ein Array aus Objekten erstellen.
Auf dieser Seite
PHP-Arrays können Objekte enthalten. Sie können Instanzen einer Klasse mit array() gruppieren, stdClass-Instanzen unter numerischen Indizes speichern oder Klasseninstanzen einem Array-Index zuweisen. In allen drei Fällen verweist der Array-Index auf ein Objekt; Eigenschaften wie name und type gehören zu diesem Objekt.
Die folgenden Beispiele veranschaulichen den Aufbau von Arrays und Objekten. Es liegen keine aufgezeichneten Laufzeitausgaben vor; mit jedem Aufruf von print_r() können Sie die Struktur untersuchen, wenn Sie den Code ausführen.
Erstellen Sie ein Array aus Klassenobjekten in PHP
Definieren Sie eine Klasse, erstellen Sie Instanzen davon und übergeben Sie diese an array(). In diesem Beispiel hat jedes Motorcycle-Objekt die öffentlichen Eigenschaften name und type. Das resultierende Array $bikes enthält zwei Einträge an den Indizes 0 und 1.
<?php
class Motorcycle
{
public $name;
public $type;
}
$bike1 = new Motorcycle();
$bike1->name = 'Husqvarna';
$bike1->type = 'dirt';
$bike2 = new Motorcycle();
$bike2->name = 'Goldwing';
$bike2->type = 'touring';
$bikes = array($bike1, $bike2);
print_r($bikes);
print_r() zeigt zuerst die Array-Indizes und anschließend die Eigenschaften der einzelnen Objekte. name und type sind keine Schlüssel auf der obersten Array-Ebene, sondern Eigenschaften der Motorcycle-Objekte an den Indizes 0 und 1.
Erstellen Sie ein Array aus stdClass-Objekten in PHP
stdClass ist eine allgemeine PHP-Klasse, deren Instanzen Eigenschaften erhalten können. Eine Instanz ist ein Objekt und kein Array. Speichern Sie jede Instanz im Array $bikes und legen Sie anschließend name und type für das Objekt an diesem Index fest:
<?php
$bikes = array();
$bikes[0] = new stdClass();
$bikes[0]->name = 'Husqvarna';
$bikes[0]->type = 'dirt';
$bikes[1] = new stdClass();
$bikes[1]->name = 'Goldwing';
$bikes[1]->type = 'touring';
print_r($bikes);
Hier sind $bikes[0] und $bikes[1] die Objekte. name und type sind Eigenschaften, die dem jeweiligen Objekt zugewiesen werden. Dieser Ansatz eignet sich, wenn ein einfaches Objekt genügt und Sie keine benannte Klasse definieren müssen.
Erstellen Sie mit der Funktion array() ein Array aus Objekten in PHP
Sie können $bikes zunächst als leeres Array anlegen und anschließend Motorcycle-Objekte hinzufügen. Damit kehren Sie die Reihenfolge der Erstellung aus dem ersten Beispiel um: Zuerst legen Sie das Array an, dann weisen Sie jedem Index ein neues Objekt zu und setzen dessen Eigenschaften.
<?php
class Motorcycle
{
public $name;
public $type;
}
$bikes = array();
$bikes[0] = new Motorcycle();
$bikes[0]->name = 'Husqvarna';
$bikes[0]->type = 'dirt';
$bikes[1] = new Motorcycle();
$bikes[1]->name = 'Goldwing';
$bikes[1]->type = 'touring';
print_r($bikes);
Diese Schreibweise ist praktisch, wenn Sie das Array Eintrag für Eintrag aufbauen möchten, etwa bei der Verarbeitung von Eingaben. Bei beiden Ansätzen mit Klassen verweisen die numerischen Array-Indizes auf Objekte; die Eigenschaften bleiben Bestandteil des jeweiligen Objekts.