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

Kan*_*iya 5 php arrays syntax error-handling output

嗨,我使用PHP几年,

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

$arr    = array();
$arr    = array(1,2);
$arr[0] = 1;
$arr[]  = 1;
Run Code Online (Sandbox Code Playgroud)

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

$a{0} = "value";
Run Code Online (Sandbox Code Playgroud)

但是以下代码没有运行:

$a{} = "value";
Run Code Online (Sandbox Code Playgroud)

它给了:

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

怎么解释这个?

Sha*_*ran 10

从PHP文档:

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

{ } 不仅仅是为了访问,你甚至可以在传递密钥的情况下将元素附加到数组中!

$arr{34} = 'some data'; // <--- Valid
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

Array
(
    [34] => some data
)
Run Code Online (Sandbox Code Playgroud)

$arr{} = 'some data';// <--- This is not a valid and it throws an error.
Run Code Online (Sandbox Code Playgroud)

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

  • 引用上面的代码段,"可互换地访问数组元素".$ a {}无法访问. (3认同)