Сокращение для массивов: есть ли буквальный синтаксис вроде {} или []?

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

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

$list = {};

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

8 ответов

Решение

Обновить:
Начиная с 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";

Да, это существует!

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

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

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

$list = [];

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

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

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

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

По состоянию на PHP 5.3 их нет.

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

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

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

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

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

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

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

$array = explode(",","0,1,2,3,4,5,6,7,8,9,10");
Другие вопросы по тегам