そういう書き方していた第三者のコードを見ていて「そんなの文法的にありえねーだろー」と思ったら実は正解だった。びっくり、知らんかった。C++やC#のプログラム歴が長い自分には何とも気持ち悪い仕様だな。自分は使わない。この仕様は将来は廃止されるっぽい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?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