如何在PHP中创建嵌套方法?

时间:2012-02-06 17:25:47

标签: php oop class methods nested

例如,我见过第三方应用程序具有以下功能:

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

这只是一个例子。你如何创建这样的方法?

2 个答案:

答案 0 :(得分:5)

为了实现这一点,每个方法都应该返回$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;
   }

}

在这些方法中,您通常会对对象的状态执行某种修改。

答案 1 :(得分:0)

在您的示例中,方法只是返回对象。因此$db->select()返回一个方法from()的对象,该方法返回一个方法为where()的对象。