PHPのメソッド呼び出しと配列アクセスの小ネタ

(これも3月19日のネタ)

いや、たいしたネタじゃないんだけどいつも忘れてガッカリするので。

以下のコードを用意したとする。

class Sample {
  function obj() {
    return $this;
  }

  function arr() {
    return array( 'a', 'b', 'c' );
  }
}

$obj = new Sample();

これに対する操作で PHP 4 と 5 でできることが異なる。

 PHP 4PHP 5
$obj->obj()->arr()×

PHP 5 ではいわゆる fluent interface っぽく書ける。これ、知らなかった。うまく使えば PHP でもそれなりに気持ちのいいコードが書けそうだ。

ただし JavaScript や Ruby の好きな自分としては

new Sample()->obj()

とは書けないとか、

$obj->arr()[1]

とは書けないとか、まだまだ不満は大きいんだけど1

  1. 後者は http://gist.github.com/69448 こういうツールを用意しておくとだいぶマシ。 

More