@shin1x1 さんの発表。
PHP5.2 から大きく機能追加されたとのこと。PHP6 のリリースがいつにな
るか分からないので、PHP6 から PHP5.3 にバックポートされたためだそう。
class の外でも const が使えるのはうれしいですね〜。と言いたいところ
ですが、define しか知りませんでした。。でも今試しました。OK! できた!
const AAA = 'huga'; /* クラスの中に書いても外に書いても OK */
pr(self::AAA); /* クラスの中の時 */
pr(AAA); /* クラスの外の時 */
namespace
PHP5.3 未満には存在しなかった。グローバルネームスペースのみ。
バックスラッシュで階層化。(なんでスラッシュじゃないの?と思った。)
影響は .php ファイルのみ。
use でインポート、エイリアス
クラス、インターフェイス名と、関数、変数とでは名前空間の検索方法が異なる。
名前空間の付け方 -> PSR-0 でルール化
結論。ハマりどころを抑えておけば問題なし。
クロージャ
似たような処理を関数化することは多いと思うが、クロージャを使えばメ
ソッドを関数の中に閉じ込められる。うまく使うと、保守性の高いコーディ
ングが出来そう。そういえば C 言語でもクロージャは書けるみたいですね。
[2010-03-30-1]
LSB
Late Static Bindings 遅延静的束縛
実行時に評価される。
self:: を static:: にするだけ。
まとめ
PHP マニュアル読みなさい。
ちょっと試したいときは、Silex というフレームワークがオススメ。
休憩
なんと!バームクーヘンが出て来ました。PHP 界隈ではスイーツ恒例だそ
うです。(フィルムをはがして撮れば良かったorz)