PHP 匿名類
PHP 7支持通過new class來實例化一個匿名類,這可以用來替代一些"用後即焚"的完整類定義。
實例
實例
<?php
interface Logger {
public function log ( string $msg );
}
class Application {
private $logger ;
public function getLogger (): Logger {
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 ( "我的第一條日誌" );
?>
interface Logger {
public function log ( string $msg );
}
class Application {
private $logger ;
public function getLogger (): Logger {
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 ( "我的第一條日誌" );
?>
以上程序執行輸出結果為:
我的第一条日志