如何在PHP中创建嵌套方法


How do you create nested methods in PHP?

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

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

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

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

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

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