PHPマニュアルに名前空間の記述が追加された
高木さんキター!ホントにありがたいことです。最近全然お手伝いできなくてすみません。。。
名前空間の他、遅延静的束縛 (Late Static Bindings)についても記載がありますね。たとえば
<?php class A { public static function who() { echo __CLASS__; } public static function test() { self::who(); } } class B extends A { public static function who() { echo __CLASS__; } } B::test();
というコードがあったときに「A」が表示されるのか?「B」が表示されるのか?ということですが、
- PHP5.3以前:A
PHP5.3以降:B
となります。※追記2を参照してください
ついでに、DoYouPHP?に上げているPHPマニュアルも更新しておきました。namazuのindexは現在更新していますので、20日の朝には使えるようになると思います。
追記(2007/11/20 00:13)
意外と早くindex作成が終わりました。http://www.doyouphp.jp/cgi-bin/namazu.cgiからどうぞ。
追記2(2007/12/03 00:15)
PHP5.3からは「self」の代わりに「static」を使う
<?php class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); } } class B extends A { public static function who() { echo __CLASS__; } } B::test();
ことで
- PHP5.3以降:B
とすることができます。
というのが正解です。TKさん、指摘ありがとうございました。