Abkürzung für Arrays: Gibt es eine wörtliche Syntax wie {} oder []?


84

Was ist die Abkürzung für die Array-Notation in PHP?

Ich habe versucht zu verwenden (funktioniert nicht):

$list = {};

Es ist perfekt, wenn Sie Links zu Informationen über andere Abkürzungen für PHP geben.


Es gibt viele Funktionen, mit denen in speziellen Fällen Arrays erstellt werden können (z. B. str_split), aber ich gehe davon aus, dass Sie nicht darüber sprechen.
Matthew

PHP hat nicht. Aber phpreboot und pihipi bieten experimentelle neue Syntax.
Mario

Antworten:


134

Update:
Ab PHP 5.4.0 wurde eine verkürzte Syntax zum Deklarieren von Arrays eingeführt:

$list = [];

Vorherige Antwort:

Das gibt es nicht. Nur $list = array();Aber Sie können einfach anfangen, Elemente hinzuzufügen.

<?php
$list[] = 1;
$list['myKey'] = 2;
$list[42] = 3;

Für PHP ist das vollkommen in Ordnung. Sie erhalten nicht einmal eine E_NOTICE für undefinierte Variablen .

Der Fehler auf E_NOTICE-Ebene wird ausgegeben, wenn mit nicht initialisierten Variablen gearbeitet wird, jedoch nicht, wenn Elemente an das nicht initialisierte Array angehängt werden.

Bei den Kurzschriftmethoden sind überall viele verstreut. Wenn Sie sie finden möchten, lesen Sie einfach das Handbuch .

Einige Beispiele, nur zu Ihrer Unterhaltung:

  1. $arr[]Abkürzung für array_push.
  2. Das foreachKonstrukt
  3. echo $string1, $string2, $string3;
  4. Array-Verkettung mit +
  5. Die Existenz von elseif
  6. Variable Einbettung in Strings, $name = 'Jack'; echo "Hello $name";

6
PHP ist so hinterhältig.
GWW

1
Ich habe PHP jahrelang professionell benutzt, ich musste einen Kollegen fragen, was das $results[] = $row;bedeutet.
Josue Alexander Ibarra

4
$ results [] = $ row; ist tatsächlich viel schneller als array_push ($ results, $ row)
Daniklad

Nach all dieser Zeit dachte ich, $var = [];wurde mit PHP7 eingeführt. Hatte keine Ahnung, dass es schon 5.4 war!
UnglaublichHat

45

JA, es existiert !!

Aus einer anderen Frage zum Stapelüberlauf extrahiert:

Die verkürzte Syntax für Arrays wurde überarbeitet, akzeptiert und ist jetzt auf dem Weg, mit PHP 5.4 veröffentlicht zu werden

Verwendung:

$list = [];

Referenz: PHP 5.4 Short Hand für Arrays


Verwenden Sie für alle, die diesen Fehler ebenfalls gemacht haben, =>anstelle von :zwischen Schlüsseln und Werten!
Clabe45

30

Es ist auch möglich, Inhalte in [] folgendermaßen zu definieren:

  $array = ['vaue1', 'value2', 'key3'=>['value3', 'value4']];

Dies funktioniert nur in PHP5.4 und höher.


1
Ich denke, es ist besser, 5.4 und höher zu schreiben (in 5.6 funktioniert es). Als Hinweis ist dies die einzige Möglichkeit, ein Array als Klassenkonstante zu deklarieren (z. B. const x = ["a", "b"];), da das const x = Array (....) nicht funktioniert
Pierpaolo Cira


4

Nein, es wurde von der Community vorgeschlagen und abgelehnt, daher ist derzeit nur die Syntax für Arrays array () .


3

Die einzige Möglichkeit, ein Array in PHP zu definieren, ist das array()Sprachkonstrukt. PHP hat keine Abkürzung für Array-Literale wie einige andere Sprachen.


2

Ich explodiere einfach Strings in ein Array wie folgt:

$array = explode(",","0,1,2,3,4,5,6,7,8,9,10");

2

Sie können Ihr Array wie folgt deklarieren:

$myArray1 = array(num1, num2, num3);
$myArray2 = array('string1', 'string2', 'string3');
$myArray3 = array( 'stringkey1'=>'stringvalue1', 'stringkey2'=>'stringvalue2');
$myArray4 = array( 'stringkey1'=>numValue1, 'stringkey2'=>numValue2);
$myArray5 = array( numkey1=>'stringvalue1', numkey2=>'stringvalue2');
$myArray6 = array( numkey1=>numValue1, numkey2=>numValue2);

Sie können so viele eingebettete Arrays haben, wie Sie benötigen.


Dies erzeugt Hinweise zu undefinierten Konstanten.
Popnoodles
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.