PHPのメソッド呼び出しと配列アクセスの小ネタ
(これも3月19日のネタ)
いや、たいしたネタじゃないんだけどいつも忘れてガッカリするので。
以下のコードを用意したとする。
class Sample {
function obj() {
return $this;
}
function arr() {
return array( 'a', 'b', 'c' );
}
}
$obj = new Sample();
これに対する操作で PHP 4 と 5 でできることが異なる。
PHP 4 | PHP 5 | |
$obj->obj()->arr() | × | ○ |
PHP 5 ではいわゆる fluent interface っぽく書ける。これ、知らなかった。うまく使えば PHP でもそれなりに気持ちのいいコードが書けそうだ。
ただし JavaScript や Ruby の好きな自分としては
new Sample()->obj()
とは書けないとか、
$obj->arr()[1]
とは書けないとか、まだまだ不満は大きいんだけど1。
後者は http://gist.github.com/69448 こういうツールを用意しておくとだいぶマシ。 ↩