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;
}
}