そういう書き方していた第三者のコードを見ていて「そんなの文法的にありえねーだろー」と思ったら実は正解だった。びっくり、知らんかった。C++やC#のプログラム歴が長い自分には何とも気持ち悪い仕様だな。自分は使わない。この仕様は将来は廃止されるっぽい。
<?php class ClassA { public function test1() { echo "ClassA::test1\n"; var_dump(get_class($this)); } } class ClassB { public function test2() { ClassA::test1(); } public function test3() { $var = new ClassA(); $var->test1(); } } $var = new ClassB(); $var->test2(); // var_dump('ClassB') $var->test3(); // var_dump('ClassA')
参考サイト
PHP: static キーワード – Manual
http://php.net/manual/ja/language.oop5.static.php