PHP7新特性系列
1. PHP7新特性之一【类型声明】 2. PHP7新特性之二 【NULL 值双问号运算符】 3. PHP 7新特性之三【大于等于小于组合比较符】 4. PHP 7新特性之四【 常量数组】 5. PHP7新特性之五【可以创建匿名类】 6. PHP7新特性之六【call 闭包调用】 7. PHP7新特性之七【国家化支持】 8. PHP7新特性之八【Error异常】

PHP7新特性之五【可以创建匿名类】

PHP 7 支持通过 new class 来实例化一个匿名类,这可以用来替代一些"用后即焚"的完整类定义。

实例

实例

<?php
interface Logger {
   public function log(string $msg);
}

class Application {
   private $logger;

   public function getLogger(): Logger {
      return $this->logger;
   }

   public function setLogger(Logger $logger) {
      $this->logger = $logger;
   }  
}

$app = new Application;
// 使用 new class 创建匿名类
$app->setLogger(new class implements Logger {
   public function log(string $msg) {
      print($msg);
   }
});

$app->getLogger()->log("我的第一条日志");
?>

以上程序执行输出结果为:


我的第一条日志