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