PHP8支持通过new class 来实例化一个匿名类。所谓匿名类,就是指没有名称的类,只能在创建时使用new语句来声明它们。
匿名类是一种没有命名的即时类,可以用于简单的对象封装和实现接口。
以下是PHP 8中匿名类的基本语法示例:
$object = new class {
// 类的属性和方法
};
在上面的示例中,new class
关键字后面跟着一对花括号,花括号内部是类的定义,包括属性和方法。创建匿名类对象后,可以使用该对象访问类的属性和方法。
下面是一个更具体的使用匿名类的示例代码:
<?php
/*********************匿名函数************************/
$f = function(){
echo "这是匿名函数";
};
$f();
echo "<br />";
class Fruit{
public $num;
public function __construct($key){
$this->num = $key;
}
public function getValue($sum):int{
return $this->num+$sum;
}
}
$fruit= new Fruit (666);
echo $fruit ->getValue(888);
echo "<br />";
/****************************匿名类***********************/
echo "这是匿名类<br/>";
echo (new class(66) extends Fruit{})->getValue(99);
echo "<br />";
echo (new class(88) extends Fruit{})->getValue(168);
?>
以上代码在php8中的运行结果为:
这是匿名函数
1554
这是匿名类
165
256
以上就是PHP8的匿名类的讲解。