- var_dump: documentation ( source)
- class_alias: documentation ( source)
<?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)