在PHP中,匿名类是指没有名字的类,匿名类不能被引用,可以利用“new class”来创建一个匿名类,语法为“new class(参数1, 参数2, ...){成员属性和方法;};”;一个匿名类只能创建一次对象。
本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。
匿名类就是指没有名字的类,它们不能被引用。因为匿名类没有名字,所以一个匿名类就只能创建一次对象。
可以通过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 修饰的属性,则必须通过构造器传进来。