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