PHP 익명 클래스

PHP 7은 새 클래스를 통해 익명 클래스 인스턴스화를 지원합니다. 이는 일부 "사용 후 굽기" 전체 클래스 정의를 대체하는 데 사용할 수 있습니다.

Instances

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

위 프로그램이 실행됩니다. 출력 결과는 다음과 같습니다:

내 첫 번째 로그