PHP 7 匿名 类

PHP 7 anonymous classes

PHP 7 引入了一个名为匿名 class 的新 class 功能,它允许我们创建对象而无需命名。匿名 classes 可以嵌套。您对内存消耗、执行时间、性能问题有何看法?有metrics/stats可用吗?

匿名 classes 是没有程序员声明名称的 classes,它们在其他方面与普通 classes 相同。

语法允许它们嵌套,就像函数一样:

function name() {
    function sub() {

    }
}

但是就像上面的代码包含两个全局可访问的函数一样,下面的代码仍然包含两个全局可访问的classes:

class C {
    function method () {
        return new class{};
    }
}

它让您可以控制 class 的位置 很容易 访问,从这个意义上说,它们是嵌套的。

它们没有嵌套,因为在另一个 class 中声明的匿名 class 无法访问创建 class.

的任何成员

这样:

class C {
    private $member;

    public function method() {
        return new class {
            public function method() {
                return $this->member;           
            }
        };
    }
}

无效,因为匿名 class 没有真正嵌套。