更详细参见: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("我的第一条日志");
?> |