Сокращение для массивов: есть ли буквальный синтаксис вроде {} или []? - PullRequest
80 голосов
/ 25 ноября 2010

Что такое сокращение для обозначения массива в PHP?

Я пытался использовать (не работает):

$list = {};

Будет прекрасно, если вы дадите ссылки на некоторую информацию о других сокращениях для PHP.

Ответы [ 8 ]

124 голосов
/ 25 ноября 2010

Обновление:
В PHP 5.4.0 введен сокращенный синтаксис для объявления массивов:

$list = [];

Предыдущий ответ:

Нет. Только $list = array(); Но вы можете просто начать добавлять элементы.

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

С PHP все в порядке. Вы даже не получите E_NOTICE для неопределенных переменных .

Ошибка уровня E_NOTICE выдается в случае, если работы с неинициализированным переменные, но не в случае добавление элементов к неинициализированный массив.

Что касается сокращенных методов, то здесь разбросано много всего. Если вы хотите найти их, просто прочитайте Руководство .

Некоторые примеры, только для вашего удовольствия:

  1. $arr[] сокращение для array_push.
  2. Конструкция foreach
  3. echo $string1, $string2, $string3;
  4. Конкатенация массивов с +
  5. Существование elseif
  6. Переменная встраивание в строки, $name = 'Jack'; echo "Hello $name";
43 голосов
/ 03 декабря 2011

ДА, он существует !!

Извлечено из другого вопроса переполнения стека:

Сокращенный синтаксис для массивов был повторно обсужден, принят иготовится к выпуску с PHP 5.4

Использование:

$list = [];

Ссылка: PHP 5.4 Short Hand для массивов

28 голосов
/ 22 июля 2013

Также возможно определить содержимое внутри [] следующим образом:

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

Это будет работать только в php5.4 и выше.

5 голосов
/ 25 ноября 2010

Начиная с PHP 5.3, их нет.

http://us.php.net/manual/en/language.types.array.php

4 голосов
/ 25 ноября 2010

Нет, это было предложено и отклонено сообществом, поэтому пока только синтаксис для массивов: array () .

3 голосов
/ 25 ноября 2010

Единственный способ определить массив в php - это языковая конструкция array().В PHP нет сокращения для литералов массива, как в некоторых других языках.

2 голосов
/ 04 июня 2014

Вы можете объявить свой массив следующим образом:

$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);

Вы можете иметь столько встроенных массивов, сколько вам нужно.

2 голосов
/ 17 апреля 2013

Я просто взрываю строки в массив следующим образом:

$array = explode(",","0,1,2,3,4,5,6,7,8,9,10");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...