PHP 7.2警告数组中不带引号的字符串不一致

时间:2018-05-16 15:09:44

标签: php arrays migration warnings php-7.2

这给出了经典警告(在下一版本中将是一个错误):

$var[$otherVar[someIndex]] = $myValue;

这不是:

$var["$otherVar[someIndex]"] = $myValue;

两者都是一样的。

在这两种情况下,PHP 7.2都不应该发出警告吗?

如果它没有,允许第二个的理由是什么,PHP新版本试图强加的新规则?

1 个答案:

答案 0 :(得分:2)

字符串插值不需要引用键,因为键已经是字符串。它不会被解释为常量(这是你从第一个例子得到的信息的重点),并且你没有意图获得$otherVar[someIndex()],因为这甚至不能按预期工作这个背景。因此,裸字问题根本不适用。

如果你试图说$var["{$otherVar[someIndex]}"],你会收到一条消息。以这种方式插入的变量更像您期望的工作,someIndex将再次被解释为常量。