PHP 匿名クラス

PHP 7 新機能

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(「私の最初のログ」);
?>

上記のプログラムの実行結果は次のとおりです。

私の最初のログ

PHP 7 新機能

その他の拡張機能