数组的简写: 是否有像{}或[]这样的字面语法?

PHP 中数组表示法的简写是什么?

我试着用(不起作用) :

$list = {};

如果您提供有关其他 PHP 简写的一些信息的链接,那么它将是完美的。

71938 次浏览

The only way to define an array in php is by the array() language construct. PHP doesn't have a shorthand for array literals like some other languages do.

Update:
As of PHP 5.4.0 a shortened syntax for declaring arrays has been introduced:

$list = [];

Previous Answer:

There isn't. Only $list = array(); But you can just start adding elements.

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

It's perfectly OK as far as PHP is concerned. You won't even get a E_NOTICE for undefined variables.

E_NOTICE level error is issued in case of working with uninitialized variables, however not in the case of appending elements to the uninitialized array.

As for shorthand methods, there are lots scattered all over. If you want to find them just read The Manual.

Some examples, just for your amusement:

  1. $arr[] shorthand for array_push.
  2. The foreach construct
  3. echo $string1, $string2, $string3;
  4. Array concatenation with +
  5. The existence of elseif
  6. Variable embedding in strings, $name = 'Jack'; echo "Hello $name";

Nope, it was proposed and rejected by the community, so for now only syntax for arrays is array().

P.S. This is the old answer, now there is a syntax, check out other answers.

YES, it exists!!

Extracted from another Stack Overflow question:

The shortened syntax for arrays has been rediscussed, accepted, and is now on the way be released with PHP 5.4

Usage:

$list = [];

Reference: PHP 5.4 Short Hand for Arrays

I just explode strings into an array like so:

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

It is also possible to define content inside [ ] like so:

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

This will only work in php5.4 and above.

You can declare your array as follows:

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

You can have as many embedded arrays as you need.