PHP 7 中的匿名类?

phpserver side programmingprogramming

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

相关文章