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

标签 php arrays syntax error-handling output

您好,我使用 PHP 已有几年了,

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

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

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

$a{0} = "value";

但是下面的代码没有运行:

$a{} = "value";

它给出了:

Parse error: syntax error, unexpected '}'

这个怎么解释?

最佳答案

From the PHP docs:

Both square brackets and curly braces can be used interchangeably for accessing array elements (e.g. $array[42] and $array{42} will both do the same thing ).

{ } 不仅用于访问,您甚至可以将元素附加到数组,前提是您传递了键!

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

输出:

Array
(
    [34] => some data
)

但是

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

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

关于php - 谁能用 PHP -> $a{0} = "value"解释这个数组声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22190847/

相关文章:

php - 插入数组

c# - Task.Run 怎么用action和ref变量名来写

php - PDO 查询绑定(bind)字符串而不是整数返回结果

javascript - 使用 jQuery 文件上传上传后如何获取图像尺寸?

php - Symfony2.3 多对多形式

jquery - 对由 Json 数组填充的 JQuery 列表进行排序

java - 无法在java中打印字符数组?可能编码?

vim - psql 客户端使用 vi 在编辑模式下自动完成

Ruby if 语法(两个表达式)

c# - 如何从 C# 字典创建 JSON(类似于 PHP)