在PHP中,匿名类是指没有名字的类,匿名类不能被引用,可以利用“new class”来创建一个匿名类,语法为“new class(参数1, 参数2, ...){成员属性和方法;};”;一个匿名类只能创建一次对象。

本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。

php匿名类是什么意思

匿名类就是指没有名字的类,它们不能被引用。因为匿名类没有名字,所以一个匿名类就只能创建一次对象。

可以通过new class来创建一个匿名类,与普通类的定义相似,不同点就是不需要设置类名,如下所示:

new class(参数1, 参数2, ...){
    成员属性和方法;
};

下面我们来看一个简单的例子,如下所示:

<?php
    $name = new class('中文网'){
        private $name;
        public function __construct($name){
            $this->name = $name;
        }
        public function output(){
            echo $this->name;
        }
    };
    $name->output();
?>

匿名类可以在一个类的内部方法中声明,也可以直接赋值给变量。当匿名类被嵌套进普通类后,不能访问这个外部类中使用 private、protected 修饰的方法或者属性。如果要访问外部类使用 protected 修饰的属性或方法,可以使用匿名类来继承此外部类。如果要使用外部类使用 private 修饰的属性,则必须通过构造器传进来。


php匿名类是什么意思