首页  >  文章  >  后端开发  >  为什么 PHP 允许不带引号或括号的数组插值?

为什么 PHP 允许不带引号或括号的数组插值?

Patricia Arquette
Patricia Arquette原创
2024-11-01 02:22:02881浏览

 Why Does PHP Allow Array Interpolation Without Quotes or Brackets?

PHP 中关联数组的字符串插值

PHP 字符串索引数组元素的插值表现出各种可能让用户感到惊讶的行为。当在双引号字符串中插入数组元素时,可以进行以下观察:

在大括号 ($ha['key1']) 或方括号 ($ha[key1]) 内使用数组元素的索引会产生预期的结果并导致发出警告(使用未定义的常量)。

但是,插入数组元素而不将其索引括在引号或括号中 ($ha[key1]) 也会产生正确的输出,尽管在语法上是意外的。

这提出了一个问题,为什么下面提供的代码片段中的最后一个语句被认为是有效的 PHP 语法:

<code class="php">print "He said $ha[key1]";</code>

解释

此行为记录在 PHP 手册中,并被视为可信功能。虽然语法可能看起来非常规,但它是在双引号字符串中插入数组元素的有效方法。

不一致

文档承认 PHP 的语法已经发展了时间,导致不一致。在这种情况下,无需将数组元素的索引括在引号或括号中即可插入数组元素的能力反映了 PHP 的历史发展,并且不推荐用于新代码。

以上是为什么 PHP 允许不带引号或括号的数组插值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn