1. ホーム
  2. php

[解決済み] PHPのメソッドチェイニングか、流暢なインターフェースか?

2022-04-16 17:16:23

質問

PHP5を使っているのですが、オブジェクト指向のアプローチで「メソッドチェイニング」という新しいフィーチャーがあると聞きました。これはいったい何なのでしょうか?どのように実装すればよいのでしょうか?

どのように解決するのですか?

実に単純な話です。あなたは、一連の ミューテーターメソッド は、すべて元の(または他の)オブジェクトを返します。そうすることで、返されたオブジェクトのメソッドを呼び続けることができます。

<?php
class fakeString
{
    private $str;
    function __construct()
    {
        $this->str = "";
    }
    
    function addA()
    {
        $this->str .= "a";
        return $this;
    }
    
    function addB()
    {
        $this->str .= "b";
        return $this;
    }
    
    function getStr()
    {
        return $this->str;
    }
}


$a = new fakeString();


echo $a->addA()->addB()->getStr();

これは、"ab" を出力します。

オンラインでお試しください