Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Anonymous class trong PHP 7


Anonymous class trong PHP 7 định nghĩa bằng new class. Có thể dùng thay thế định nghĩa class đầy đủ. Tại sao dùng anonymous class?

  • Mocking test dễ dàng.
  • Triển khai động cho interface dễ dàng, tránh dùng mocking API phức tạp.
  • Có thể đặt trong phạm vi nơi chúng được định nghĩa.
  • Tránh dùng autoloader cho triển khai đơn giản.

Ví dụ

Mã mẫu dưới:

<?php 
interface a_logger { 
    public function log(string $msg); 
} 
class App { 
    private $logger; 
    public function getLogger(): a_logger { 
        return $this->logger; 
    } 
    public function setLogger(a_logger $logger) { 
        $this->logger = $logger; 
    } 
} 
$app = new App; 
$app->setLogger(new class implements a_logger { 
    public function log(string $msg) { 
        print($msg); 
    } 
}); 
$app->getLogger()->log("This has created an anonymous class"); 
?>

Kết quả

This has created an anonymous class