[关闭]
@Chiang 2020-02-16T18:10:17.000000Z 字数 468 阅读 531

PHP 匿名类

PHP7新特性 2020-02


PHP 7 支持通过 new class 来实例化一个匿名类,这可以用来替代一些"用后即焚"的完整类定义。

  1. <?php
  2. interface Logger {
  3. public function log(string $msg);
  4. }
  5. class Application {
  6. private $logger;
  7. public function getLogger(): Logger {
  8. return $this->logger;
  9. }
  10. public function setLogger(Logger $logger) {
  11. $this->logger = $logger;
  12. }
  13. }
  14. $app = new Application;
  15. // 使用 new class 创建匿名类
  16. $app->setLogger(new class implements Logger {
  17. public function log(string $msg) {
  18. print($msg);
  19. }
  20. });
  21. $app->getLogger()->log("我的第一条日志");
  22. ?>
  23. 以上程序执行输出结果为:
  24. 我的第一条日志

参考资料:
新特性
PHP 匿名类

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注