第2回 関西PHP勉強会 目次に戻る

@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)

画像