关于“解指”的术语问题


Terminology question on "dereferencing"?

在PHP中,以下代码是有效的

$a=array(0);$a[0];

但是那个是无效的:

array(0)[0]
  1. 与这种行为相对应的术语是什么?(它与"解引用"有关吗?)
  2. 这种行为背后的动机是什么(除了用户怨恨:-P)

我正在寻找通用术语,不一定是与PHP相关的术语。

(另一个例子:在MATLAB中,以下是有效的:

s = size(M)
s(0)

但是无效:

size(M)(0)

在PHP和MATLAB中,添加括号没有帮助,即(array(0))[0](size(M))(0)都无效)

这叫做数组解引用,将在PHP 5.4(目前还在alpha阶段)

注意(谢谢戈登):你所要求的,与array() 1,是不可能的,甚至在PHP 5.4 -但它将工作的函数


几个来源:

  • RFC -函数数组解引用
  • PHP主干的特性:数组解引用,当它不确定是否有PHP 5.4或PHP 6
  • 最后但并非最不重要的是,(目前最后)新闻在php.net: PHP 5.4 alpha1发布


引用最后一条新闻:

这里是一个不完整的更改列表:
-添加:性状语言构造
-增加:数组解引用支持
-增加:DTrace支持
-改进:改进了Zend引擎的内存使用和性能
-移动:ext/sqlite移动到pecl (sqlite3支持是还内置)


<一口> 1。 array()不是一个函数,即使它看起来像一个——它实际上是PHP所说的语言结构;它们的行为不像函数

这被称为"数组解引用",它将在PHP5.4中可用。