PHP匿名クラス

PHP 7は、新しいクラスを介して匿名クラスのインスタンス化をサポートしています。これは、一部の「使用後に焼き付ける」完全なクラス定義を置き換えるために使用できます

インスタンス

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

上記のプログラムが実行されます出力結果は次のとおりです:

My first log