PHPでどのようにネストされたメソッドを作成しますか?

たとえば、次のような機能を持つサードパーティのアプリケーションを見てきました。

$db->select('columns')->from('table')->where('condition');

これは単なる例です。そのような方法をどうやって作りますか?

2

2 答え

これを実現するために、各メソッドは、メソッドを含むクラスのインスタンスである $ this を返す必要があります。

class MyClass {

   public function select($x){
     //do something
      return $this;
   }

   public function from($x){
     //do something
      return $this;
   }

   public function where($x){
     //do something
      return $this;
   }

}

これらのメソッドの中では、一般的に、オブジェクトの状態に対する何らかの変更を行います。

5
追加された

In your example, the methods are simply returning objects. So $db->select() returns an object with a method from(), which returns an object with a method where().

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com