谁能用 PHP 解释这个数组声明 -> $a{0} = "value"



嗨,我使用PHP已经有几年了,

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

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

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

$a{0} = "value";

但以下代码未运行:

$a{} = "value";

它给出了:

解析错误:语法错误,意外的"}"

如何解释这一点?

来自 PHP 文档:

方括号和大括号可以互换用于 访问数组元素(例如$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 '}'

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

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

您只能通过这种方式访问现有元素。正如您已经指出的那样$a{} = 1;行不通。

最新更新