PHP5.4でメソッドチェーンが便利になったようです。

- - posted in PHP

PHP5.0〜5.3

インスタンス生成から直接メソッドチェーンを実行するために、Creation Methodを定義する必要がありました。
面倒ですよね(;´∀`)

Hoge::create('Hello')->fuga();

class Hoge
{
    private $message;

    private function __construct($message)
    {
        $this->message = $message;
    }

    public static function create($message)
    {
        return new self($message);
    }

    public function fuga()
    {
        echo $this->message;
    }
}

PHP5.4〜

Creation Method を定義せず、コンストラクタから直接メソッドチェーンが実行できます。

(new Hoge('Hello'))->fuga();

class Hoge
{
    private $message;

    public function __construct($message)
    {
        $this->message = $message;
    }

    public function fuga()
    {
        echo $this->message;
    }
}

MacへのPHP5.4インストールでこちらを参考にさせていただきました

Macで一番簡単にPHP5.4をインストールする方法

Comments