遅延静的束縛 で new static(); とかできる
タイトルは日本語崩壊気味ですが,超メモ.
<?php class klass_a { public function __construct() { echo get_called_class() . "\n"; } public static function hoge() { return new static(); } } class klass_b extends klass_a { } $a = klass_a::hoge(); $b = klass_b::hoge();
結果:
klass_a klass_b
new static(); w
修正
タイトルが性的な意味でヤバかったので修正