Анонимные классы теперь могут быть определены с использованием нового класса. Анонимный класс может использоваться вместо полного определения класса.
пример
<?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; $app->setLogger(new class implements Logger { public function log(string $msg) { print($msg); } }); $app->getLogger()->log("My first Log Message"); ?>
Это производит следующий вывод браузера —