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