@ 2023-11-21T02:49:41Z <?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)
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.1.0 - 7.1.33 , 7.2.0 - 7.2.34 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.31 , 8.2.0 - 8.2.26 , 8.3.0 - 8.3.14 , 8.4.1 - 8.4.2 Hello World
object(ExtendAnonymous)#2 (0) {
}
string(15) "ExtendAnonymous"
bool(true)
Output for 7.0.0 - 7.0.33 Hello World
Fatal error: Uncaught TypeError: Return value of class@anonymous::echoMsg() must be an instance of void, none returned in /in/ZoV4D:7
Stack trace:
#0 /in/ZoV4D(19): class@anonymous->echoMsg()
#1 {main}
thrown in /in/ZoV4D on line 7
Process exited with code 255 . Output for 5.4.0 - 5.4.45 , 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 Parse error: syntax error, unexpected 'class' (T_CLASS) in /in/ZoV4D on line 3
Process exited with code 255 . Output for 5.3.0 - 5.3.29 Parse error: syntax error, unexpected T_CLASS in /in/ZoV4D on line 3
Process exited with code 255 . Output for 4.4.2 - 4.4.9 , 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or '$' in /in/ZoV4D on line 3
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 , 5.0.0 - 5.0.5 Parse error: parse error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or '$' in /in/ZoV4D on line 3
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `'$'' in /in/ZoV4D on line 3
Process exited with code 255 . preferences:dark mode live preview
74.9 ms | 414 KiB | 5 Q