PHP5.3の新機能『遅延静的束縛』について勉強してみる

PHP5.3の新機能『遅延静的束縛』について勉強してみる

勉強会シリーズ第3回目、これで新機能の勉強はほぼ終わりの予定です。
と言っても他にも追加されたものはたくさんあるんですけどね、gotoとかgotoとか・・・

遅延静的束縛

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

この “遅延静的束縛” という機能名は、内部動作を考慮してつけられたものです。 “遅延束縛 (Late binding)” の由来は、メソッドを定義しているクラス名を使用しても static:: の解決ができなくなったことによります。 その代わりに、実行時情報をもとに解決するようになります。 “静的束縛 (static binding)” の由来は、 静的メソッドのコールに使用できることによります (ただし、静的メソッド以外でも使用可能です)。

PHP5.2まで

遅延静的束縛の使用法

ふむ・・・・で?って感じですよね?

__callStatic() マジック・メソッド

動的な静的呼び出しが出来るようになる

へー、としか言いようがないけど、cakephpとlithiumの違いを見るとわかりやすいかもしれません

cakephpのfind

lithiumのfind

静的にモデルを呼んでfind(‘all’)出来てますね。
良いか悪いかはわかりませんがこれもコードを短くする工夫になるのではないでしょうか

コメントを残す