PHP 7中的匿名类?

可以使用新类定义PHP 7中的匿名类。也可以使用它代替完整的类定义。为什么要使用匿名类?

  • 模拟测试很容易。

  • 可以轻松创建接口的动态实现,从而避免使用复杂的模拟API。

  • 可以将它们放在已定义的范围内。

  • 可以避免将autoloader用于简单的实现。

示例

以下是代码示例-

<?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

以上是 PHP 7中的匿名类? 的全部内容, 来源链接: utcz.com/z/326992.html

回到顶部