ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

遅延静的束縛(5.3.0)

PHP 5.3.0 以降、PHP に遅延静的束縛と呼ばれる機能が搭載されます。 これを使用すると、静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。

http://docs.php.net/manual/ja/language.oop5.late-static-bindings.php

http://d.hatena.ne.jp/shimooka/20071119/1195483923
経由で知りましたが・・・。shimookaさんのところにもサンプルコードがありますが・・・。


・・・

納得行かない・・・。

つまり、後方互換性が無いのでは?と思うのです。
何かしらフラグスイッチを用意しておき、ON/OFFで挙動の新旧を切り替えられる、というなら話は別ですが。
そのままだと新しい方の挙動になり、以前の挙動に戻すにはコードを書き換えないとならない(self::ではなくてstatic::にしないといけない)というのは、どうも、美しくないように思えるのです。

とはいえdevのmlでも当然議論があったはずで、その辺を全く調べずに愚痴を言っても詮方ない。
でもなー、なんだかなー。
PHPの言語仕様の改訂される「センス」って、本当、よくわかんねッス。