【发布时间】:2022-01-05 06:50:59
【问题描述】:
这个问题可能与why in array single quotes not required according to the syntax重复
但我没有在那里需要我的解释。我们知道我们可以做echo "$myArr[0]",但我们不能对像echo "myAssocArr['myKey']" 这样的关联数组做同样的事情。我知道我们可以使用 php 复杂的语法来绕过,比如echo "{myAssocArr['myKey']}"。
我的问题是,如果 php 可以在没有复杂语法的情况下访问普通索引数组,那么为什么它也不能访问辅助数组的值。 php 编译器/zend/whatever 引擎内部发生了什么阻止它在没有复杂语法的情况下访问字符串中的关联数组的值。
【问题讨论】:
-
我可以使用
echo "$assocArray[mykey]";。 -
@vee 我也这样做了,但是 stackoverflow 上的其他帖子表明这是一种不好的做法,因为那不是标准的 php 允许的语法。
-
@vee 您的链接都没有使用不带引号的数组键。在这里它说这是一种不好的做法,可能会抛出错误stackoverflow.com/a/13622685/3429430
-
它不会抛出任何错误。在 PHP 7.0+ 上测试。 php.net/language.types.string 请看一下示例 15
echo "He drank some $juices[koolaid1] juice.".PHP_EOL;没有引号 (')。 KIKO 的回答也没有引号。 -
但是如果这个代码
echo "$arr['mykey']";