親クラスの中で小クラスでオーバーライドした関数や変数を使いたいとき
class parent { const test = 1; public function test() { echo self::test } } class child extends parent { const test = 2; } $hoge = new child; $hoge->test();
ってやると 1 が出力されちゃう。
これを 2 を出したいときは
class parent { const test = 1; public function test() { echo constant(get_called_class().'::test') } } class child extends parent { const test = 2; } $hoge = new child; $hoge->test();
ってやってあげると 2 が出る。
定数なら constant 使えばいいし
関数なら call_user_func 使えばOK(call_user_func(get_called_class().'::sendMail', $test) ッて感じ)