PHPでクラスの Setterメソッド を実装中に思ったのですが、PHPの Setterメソッド で戻り値に自分自身のオブジェクト($this)を返している実装を見かけました。私は Java 出身者です(実務経験は少ないです・・・)。これまでの経験上、特別な理由がない限り、Java で Setterメソッドに戻り値を指定することがありませんでした。なぜでしょうか?調べてみました。
調査項目 |
PHPのクラスでSetterメソッドに自分自身($this)を戻り値にする理由が知りたい。
調査結果 |
チェーンメソッドを使用するため。
サンプル |
チェーンメソッドのサンプルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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 ; //どうして自分自身を返すの? } } |
1 2 | $emp = new EmployeeBean(); $emp ->setCdEmployee( '12E0001' )->setNmEmployee( '山田 太郎' ); |
参考資料 |
以上
0 件のコメント:
コメントを投稿