任何人都可以在PHP中解释这个数组声明 - > $ a {0} =“价值”

时间:2014-03-05 07:02:40

标签: php arrays syntax error-handling output

您好我使用PHP几年了,

这些是PHP中我知道声明数组的方法

$arr    = array();
$arr    = array(1,2);
$arr[0] = 1;
$arr[]  = 1;

在一个例子中,我看到了这种语法,我运行了代码并且它是有效的:

$a{0} = "value";

但以下代码未运行:

$a{} = "value";

它给了:

  

解析错误:语法错误,意外'}'

如何解释这个?

2 个答案:

答案 0 :(得分:10)

From the PHP docs:

  

方括号和花括号都可以互换使用   访问数组元素(例如$ array [42]和$ array {42}都可以   同样的事情)。

{ }不只是用于访问,如果传递密钥,您甚至可以将元素附加到数组中!

$arr{34} = 'some data'; // <--- Valid

<强>输出:

Array
(
    [34] => some data
)

$arr{} = 'some data';// <--- This is not a valid and it throws an error.

{ }[ ]之间的唯一区别是您需要传递前者的密钥。否则,它会抛出错误:PHP Parse error: syntax error, unexpected '}'

答案 1 :(得分:1)

它与方括号相同,但更接近Perl语法。

http://uk1.php.net/manual/en/language.types.array.php#99015

您只能以这种方式访问​​现有元素。正如您已经指出的那样$a{} = 1;将不起作用。