Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 7의 익명 클래스?

<시간/>

PHP 7의 익명 클래스는 새 클래스를 사용하여 정의할 수 있습니다. 전체 클래스 정의 대신 사용할 수도 있습니다. 익명 클래스를 사용하는 이유는 무엇입니까?

  • 모의 테스트는 쉽습니다.
  • 인터페이스를 위한 동적 구현을 ​​쉽게 생성할 수 있으므로 복잡한 모의 API 사용을 피할 수 있습니다.
  • 정의된 범위에 배치할 수 있습니다.

  • 간단한 구현을 위한 자동 로더의 사용은 피할 수 있습니다.

예시

아래는 코드 샘플입니다 -

<?php
interface a_logger {
   public function log(string $msg);
}
class App {
   private $logger;
   public function getLogger(): a_logger {
      return $this->logger;
   }
   public function setLogger(a_logger $logger) {
      $this->logger = $logger;
   }
}
$app = new App;
$app->setLogger(new class implements a_logger {
   public function log(string $msg) {
      print($msg);
   }
});
$app->getLogger()->log("This has created an anonymous class");
?>

출력

이것은 다음과 같은 출력을 생성합니다 -

This has created an anonymous class