PHP 数组——方括号 vs 花括号($array[$i] vs $array$i)

Posted

技术标签:

【中文标题】PHP 数组——方括号 vs 花括号($array[$i] vs $array$i)【英文标题】:PHP arrays -- square brackets vs curly braces ($array[$i] vs $array$i)PHP 数组——方括号 vs 花括号($array[$i] vs $array$i) 【发布时间】:2016-11-19 19:13:00 【问题描述】:

我最近了解到,php 中的$myArray[$index] 等同于$myArray$index

这在PHP docs 上提到过。我还在这里找到了小讨论:PHP curly braces in array notation。

PHP-FIG 不包含任何关于哪种方式更可取的建议。

所以,我的问题是——这只是一个口味问题,或者可能是使用一种或另一种语法的一些客观原因?

【问题讨论】:

像其他人一样使用第一种方式。 @PeeHaa 实际上我总是使用这种语法,但我遇到了一段代码,其中使用了第二种语法(与第一种语法混合)。我有点困惑 你有什么理由使用我个人从未见过的语法吗? @CharlotteDunois 这不是我的代码,我只是遇到了这个问题,想知道这里是否有任何真正的区别 【参考方案1】:

数组元素的“方括号表示法”会更加统一和可接受。在处理数组元素的访问时,“大括号表示法”将在表达式中起作用,但在变量插值中不起作用.考虑以下示例:

$myArray = [1,2];
$index = 1;

echo "value at index $index is $myArray[$index]"; // outputs "value at index 1 is 2"

echo "value at index $index is $myArray$index"; // will throw "Notice: Array to string conversion"

var_dump($myArray$index);   // outputs "int(2)"

【讨论】:

以上是关于PHP 数组——方括号 vs 花括号($array[$i] vs $array$i)的主要内容,如果未能解决你的问题,请参考以下文章

PHP怎么生成去掉中括号的JSON

JSON数据格式解析

数组未在 C++ 中使用花括号进行初始化

php操作MySQL中单引号与怎么处理?

VS 2017 中取消自动补全花括号

php-数组操作