PHP HandbuchArraysEin Array in PHP ist eigentlich eine geordnete Abbildung. Eine Abbildung ist ein Typ der Werte auf Schlüssel abbildet. Dieser Typ ist auf mehrere Arten optimiert, so dass Sie ihn auf verschiedene Weise benutzen können: als reales Array, als Liste (Vektor), als Hash-Tabelle (das ist eine praktische Anwendung einer Abbildung), als Verzeichnis, als Sammlung, als Stapel (Stack), als Warteschlange (Queue) und möglicherweise mehr. Da Sie ein weiteres PHP-Array als Wert benutzen können, ist es ziemlich einfach möglich Baumstrukturen zu simulieren. Die Erklärung dieser Datenstrukturen sprengt den Rahmen dieses Handbuchs, aber Sie finden zumindest ein Beispiel für jede dieser Strukturen. Für weitergehende Informationen verweisen wir auf externe Literatur zu diesem breit gefächerten Thema. SyntaxAngabe mit array()Ein array kann mit Hilfe des Sparchkonstrukts array() erzeugt werden. Es benötigt eine bestimmte Anzahl von Komma-getrennten Schlüssel => Wert Paaren.
Ein Ein Wert kann jeder PHP-Typ sein.
Falls Sie für einen Wert keinen Schlüssel angeben, wird der größte der Ganzzahl-Indizes genommen und der neue Schlüssel wird dieses Maximum + 1 sein. Falls Sie einen Schlüssel angeben dem schon ein Wert zugeordnet wurde, wird dieser Wert überschrieben.
Wenn Sie TRUE als Schlüssel benutzen, wird dies als Schlüssel vom Typ integer 1 ausgewertet. Benutzen Sie FALSE als Schlüssel, wird dies als Schlüssel vom Typ integer 0 ausgewertet. Die Benutzung von NULL als Schlüssel führt dazu, dass der Schlüssel als leerer String gewertet wird. Verwenden Sie einen leeren String als Schlüssel, wird ein Schlüssel mit einem leeren String und seinem Wert erzeugt (oder überschrieben). Das entspricht nicht der Verwendung von leeren Klammern. Sie können keine Arrays oder Objekte als Schlüssel benutzen. Der Versuch wird mit einer Warnung enden: Illegal offset type. Erzeugen / Verändern mit der eckigen Klammer-SyntaxSie können ein bestehendes Array durch explizites Zuweisen von Werten verändern. Weisen Sie dem Array Werte zu indem Sie den Schlüssel in eckigen Klammern angeben. Sie können den Schlüssel auch weglassen. In diesem Fall schreiben Sie einfach ein leeres Klammerpaar ("[]") hinter den Variablennamen.
$arr bis dahin nicht existiert, wird es
erzeugt. Das ist also eine alternative Syntax um ein Array zu
erzeugen. Um einen bestimmten Wert zu ändern, weisen Sie
einfach einem Element, das Sie mit seinem Schlüssel
spezifizieren, einen neuen Wert zu. Wenn Sie ein Schlüssel/Wert
Paar entfernen möchten, benutzen Sie unset().
Nützliche FunktionenEs gibt viele nützliche Funktionen um mit Arrays zu arbeiten. Schauen Sie unter dem Abschnitt Array Funktionen nach.
Die foreach Kontrollstruktur gibt es speziell für Arrays. Damit ist es leicht ein Array zu durchlaufen. Array do's und don'tsWarum ist $foo[bar] falsch?Sie sollten immer Anführungszeichen für einen String-Literal-Index eines Arrays benutzen. Zum Beispiel sollten Sie $foo['bar'] und nicht $foo[bar] benutzen. Aber warum ist $foo[bar] falsch? Vieleicht kennen Sie folgende Syntax aus alten Skripts: Es ist falsch, funktioniert aber. Warum ist es dann falsch? Der Grund ist, dass dieser Code statt eines Strings ('bar'- beachten Sie die Anführungszeichen) eine undefinierte Konstante (bar) enthält und PHP in Zukunft Konstanten definieren könnte, die, unglücklicherweise für Ihren Code, den gleichen Namen verwenden. Es funktioniert, weil PHP einen bloßen String (ein String ohne Anführungszeichen, der keinem bekannten Symbol entpricht) automatisch in einen String umwandelt, der den bloßen String enthält. Wenn beispielsweise keine Konstante namens bar definiert ist, ersetzt es PHP durch den String 'bar' und verwendet diesen.
Weitere Beispiele zur Veranschaulichung dieses Sachverhalts:
Wenn Sie error_reporting() auf Fehler der Stufe E_NOTICE einstellen (beispielsweise durch setzen auf E_ALL), werden Sie diese Fehlermeldungen zu sehen bekommen. Standardmäßig ist error_reporting so eingestellt, dass sie nicht angezeigt werden. Wie im Abschnitt Syntax ausgeführt, muss zwischen den eckigen Klammern ('[' und ']') ein Ausdruck stehen. Das heißt, dass Sie Dinge ähnlich diesen schreiben können: Das ist ein Beispiel dafür, wie Sie den Rückgabewert einer Funktion als Array-Index verwenden können. Ebenso kennt PHP Konstanten. Vielleicht haben Sie die E_* Konstanten schon einmal gesehen.
Wie schon in den obigen Beispielen erklärt wurde, funktioniert $foo[bar] zwar, ist aber falsch. Es funktioniert, weil bar aufgrund seiner Syntax als Konstante ausgewertet wird. In diesem Fall jedoch existiert keine Konstane mit dem Namen bar. PHP nimmt an, dass Sie bar wörtlich gemeint haben, wie den String 'bar', aber vergessen haben, die Anführungszeichen zu setzen. Aber warum ist es schlecht?Eines Tages könnte sich das PHP-Team entscheiden eine weitere Konstante oder ein Schlüsselwort hinzuzufügen oder Sie könnten eine weitere Konstante in Ihre Anwendung einfügen. Und dann geraten Sie in Schwierigkeiten. Zum Beispiel können Sie bereits die Wörter empty und default auf diese Art nicht benutzen, weil es speziele Schlüsselwörter sind.
Umwandlung nach arrayFür die Typen Integer, Float, String, Boolean und Resource gilt: wenn Sie einen Wert in ein Array umwandeln, bekommen Sie ein Array mit einem Element (mit Index 0), das der skalare Wert ist, den Sie anfangs hatten. Wenn Sie ein Objekt in ein Array umwandeln, bekommen Sie die Eigenschaften (Mitgliedsvariablen) des Objekts als Elemente des Arrays. Die Schlüssel sind die Namen der Mitgliedsvariablen. Wenn Sie einen NULL-Wert in ein Array umwandeln, bekommen Sie ein leeres Array. VergleicheArrays können Sie mit der Funktion array_diff() und mit den Array Operatoren vergleichen. BeispieleDer Array-Typ in PHP ist sehr vielseitig. Hier folgen einige Beispiele um Ihnen die Mächtigkeit von Arrays zu veranschaulichen.
Beachten Sie, dass es gegenwärtig nicht möglich ist die Werte eines Arrays direkt in einer solchen Schleife zu ändern. Eine Lösung ist folgendes: Dieses Beispiel erzeugt ein Array, dessen Schlüssel bei eins beginnt. Arrays sind geordnet. Diese Ordnung können Sie mit Hilfe verschiedener Sortierfunktionen verändern. Für mehr Informationen schauen Sie unter dem Abschnitt zu den Array Funktionen nach. Die Anzahl der Elemente in einem Array können Sie mit der Funktion count() zählen. Weil der Wert eines Arrays alles sein kann, kann dieser Wert wiederum ein Array sein. Somit können Sie rekursive und multidimensionale Arrays erzeugen. Sie sollten wissen, dass beim Zuweisen eines Arrays die Werte immer kopiert werden. Um ein Array als Referenz zu kopieren, müssen Sie den Referenz-Operator verwenden.
|
PHP-Index
Neuzugänge PHP MySQL Tutorials
|
|