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