PHP匿名类

更详细参见:PHP匿名类

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php 
interface Logger { 
   public function log(string $msg); 
 
class Application { 
   private $logger
   public function getLogger(): Logger {   // php7 可用
      return $this->logger; 
   
 
   public function setLogger(Logger $logger) { 
      $this->logger = $logger
   }   
 
$app = new Application; 
 
// 使用 new class 创建匿名类 
$app->setLogger(new class implements Logger { 
   public function log(string $msg) { 
      print($msg); 
   
}); 
 
$app->getLogger()->log("我的第一条日志"); 
 
?>
posted @ 2017-09-10 17:51  迷失在路上  阅读(1429)  评论(0编辑  收藏  举报