PHPのSetterメソッドで$thisを返す理由



 PHPでクラスの Setterメソッド を実装中に思ったのですが、PHPの Setterメソッド で戻り値に自分自身のオブジェクト($this)を返している実装を見かけました。私は Java 出身者です(実務経験は少ないです・・・)。これまでの経験上、特別な理由がない限り、Java で Setterメソッドに戻り値を指定することがありませんでした。なぜでしょうか?調べてみました。

調査項目

PHPのクラスでSetterメソッドに自分自身($this)を戻り値にする理由が知りたい。


調査結果

チェーンメソッドを使用するため。


サンプル

チェーンメソッドのサンプルです。

class EmployeeBean {

    /**
     * 従業員コード
     * @var string
     */
    private $cdEmployee;

    /**
     * 従業員名称
     * @var string
     */
    private $nmEmployee;

    public function getCdEmployee() {
        return $this->cdEmployee;
    }

    public function setCdEmployee(string $cdEmployee) {
        $this->cdEmployee = $cdEmployee;
        return $this;   //どうして自分自身を返すの?
    }

    public function getNmEmployee() {
        return $this->nmEmployee;
    }
    
    public function setNmEmployee(string $nmEmployee) {
        $this->nmEmployee = $nmEmployee;
        return $this;   //どうして自分自身を返すの?
    }

}

$emp = new EmployeeBean();
$emp->setCdEmployee('12E0001')->setNmEmployee('山田 太郎');


参考資料
php - Why to do return $this in setter methods? - Stack Overflow


以上

0 件のコメント:

コメントを投稿

最新

【PHP】スーパーグローバル変数 $_GET $_POST $_REQUEST

スーパーグローバル変数 $_REQUESTは、HTTPメソッドがGETとPOSTのいずれの場合もデータを取得することができる。 $_REQUEST['xxx'] $_GET['xxx'] $_POST['xxx'] ...