1

在 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)无效)

4

2 回答 2

3

这称为Array dereferencing,将在PHP 5.4中可用 (目前为 alpha 版本)

注意(感谢 Gordon):即使在 PHP 5.4 中,您所要求的array()1也是不可能的——但它适用于函数


几个来源:


引用最后一条消息:

这是一个不完整的更改列表:
- 添加:特征语言构造
- 添加:数组解引用支持
- 添加:DTrace 支持
- 改进:改进 Zend 引擎内存使用和性能
- 移动:ext/sqlite 移动到 pecl(仍然构建 sqlite3 支持-在)


1.array()不是一个函数,即使它看起来像一个函数——它实际上是 PHP 所称的语言结构;并且那些行为不像函数。

于 2011-07-23T12:52:52.227 回答
1

这称为“数组取消引用”,它将可用于 PHP5.4。

于 2011-07-23T12:51:31.053 回答