这给出了经典警告(在下一版本中将是一个错误):
$var[$otherVar[someIndex]] = $myValue;
这不是:
$var["$otherVar[someIndex]"] = $myValue;
两者都是一样的。
在这两种情况下,PHP 7.2都不应该发出警告吗?
如果它没有,允许第二个的理由是什么,PHP新版本试图强加的新规则?
答案 0 :(得分:2)
字符串插值不需要引用键,因为键已经是字符串。它不会被解释为常量(这是你从第一个例子得到的信息的重点),并且你没有意图获得$otherVar[someIndex()]
,因为这甚至不能按预期工作这个背景。因此,裸字问题根本不适用。
如果你试图说$var["{$otherVar[someIndex]}"]
,你会收到一条消息。以这种方式插入的变量更像您期望的工作,someIndex
将再次被解释为常量。