PHP 匿名类


PHP 匿名类

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("我的第一条日志");  
?>

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

我的第一条日志