3v4l.org

run code in 300+ PHP versions simultaneously
<?php $anonymous = new class { public function echoMsg(): void { echo 'Hello World' . PHP_EOL; } }; // get_class($anonymous) で無名クラスのPHP内での名前を得る // class_alias で IHaveName というクラス名のエイリアスを作る class_alias(get_class($anonymous), 'IHaveName'); // 無名クラスのエイリアスである IHaveName を継承させる class ExtendAnonymous extends IHaveName { } // 動く $instance = new ExtendAnonymous(); $instance->echoMsg(); // Hello World var_dump($instance); // object(ExtendAnonymous)#1 (0) {} var_dump(get_class($instance)); // string(15) "ExtendAnonymous" var_dump($instance instanceof $anonymous); // bool(true)

preferences:
48.72 ms | 405 KiB | 5 Q