【问题标题】:How does PHP's list function work?PHP的列表函数是如何工作的?
【发布时间】:2010-09-22 05:40:51
【问题描述】:

最近在这里回答了几个关于使用 PHP 的 list 函数的问题后,我想知道,“这个函数到底是如何在幕后工作的?”。我正在考虑使用 func_get_args() 然后遍历参数列表,这一切都很好,但是 assignment 部分到底是如何工作的呢?

 list(...) = array($x, $y, $z);

这不是首先评估的 ^ 吗?

确切地说,我的问题是list 函数如何能够创建分配给尚未评估的数组的作用域变量?

【问题讨论】:

    标签: php function internals


    【解决方案1】:

    list 是一个语言结构,而不是一个函数。它不按照普通函数的规则运行,它更类似于一个iffor(或array()as the manual states),硬编码到PHP 核心中。

    【讨论】:

    • 投反对票的人愿意发表评论吗? (不过,您确实通过代表带来了一个不错的整数,所以,谢谢,我想。)
    • @stereofrog 这些东西在 PHP 中被正式称为 语言结构。计算机科学他们可能是操作员,我在这里坚持使用 PHP 术语。
    • @stereofrog 哦,好吧,我想这值得商榷。我想它可以用来标记像= 这样明显是运算符的东西和看起来更像函数但不是empty 的东西之间的区别。我同意list()= 将是一个运营商,但它的“官方名称”是list(),它与= 运营商一起使用......嗯。那是你的 PHP,不是很学术。 :)
    • @stereofrog 虽然使用不同的术语并不能消除这种争论,因为两者都是语言结构。我认为这样对初学者来说更容易理解(并不是说这不是什么问题;P)。
    • @stereofrog 如果他们做得正确,他们会使用一种不像函数调用但看起来更像一个运算符的语法。我猜这就是他们不称他们为操作员的原因,以免让那些几乎无法理解中缀操作员的人感到困惑,更不用说为什么list() = 被称为“操作员”了。
    猜你喜欢
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多