更詳細參見: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(
"我的第一條日志"
);
?>
|