访问数组whitout引用密钥

dki*_*zer 3 php syntax

我可以使用$array[key]或访问数组值$array['key']

是否有理由避免使用其中一个?

Gum*_*mbo 6

使用后一种变体$array['key'].前者只能工作,因为PHP是宽容的,key如果没有常量命名键,则假设字符串值:

始终在字符串文字数组索引周围使用引号.例如,$foo['bar']是正确的,而$foo[bar]不是.[...]这是错的,但它确实有效.原因是这个[...]有一个未定义的常量(bar)而不是一个字符串('bar'- 注意引号).

另见阵列做和不做.

现在与在纯PHP代码中访问数组相反,当在双引号字符串中使用变量解析时,实际上需要在没有引号的情况下编写它或使用大括号语法:

[...]在双引号字符串中,有效的是不用引号括起数组索引,因此"$foo[bar]"是有效的.有关原因以及字符串中变量解析部分的详细信息,请参阅上面的示例.

所以:

// syntax error
echo "$array['key']";

// valid
echo "$array[key]";
echo "{$array['key']}";
Run Code Online (Sandbox Code Playgroud)