类中的PHP方法与另一个方法?

类中的PHP方法与另一个方法?,php,class,oop,Php,Class,Oop,我只需要解释一下,或者向正确的方向推一推如何搜索这个:一些类方法的子方法是什么 我见过这样的电话: $data = Log::Bank($var1, $var2)->start(); $data = Log::Bank($var1, $var2)->refund(); 或者 $xml = getData($uri)->toArray(); 什么是start(),return()和toArray()选项?这些方法返回的对象上有其他方法,也有调用的方法。因此getData将返回

我只需要解释一下,或者向正确的方向推一推如何搜索这个:一些类方法的子方法是什么

我见过这样的电话:

$data = Log::Bank($var1, $var2)->start();
$data = Log::Bank($var1, $var2)->refund();
或者

$xml = getData($uri)->toArray();

什么是
start()
return()
toArray()
选项?

这些方法返回的对象上有其他方法,也有调用的方法。因此getData将返回一些具有toArray()方法的对象

您还可以返回对象本身并使用方法链接,即

class MailBuilder {
private $subject;
private$ $body;

public function setSubject($body) {
  $this->body = $body;

  return $this; 
}

public function setBody($body) {
  $this->subject = $subject;

  return $this; 
}
}
然后你可以做一些类似的事情:

$builder = new MailBuilder();
$builder->setSubject('something')->setBody('something');
因此,您可以这样做,因为这些方法将返回对象本身,尽管您可以将调用链接到下一个方法

记住这样的代码(调用嵌套太深的对象)是不好的(称为火车失事):


这些方法返回的对象上有其他方法,也有被调用的方法。因此getData将返回一些具有toArray()方法的对象

您还可以返回对象本身并使用方法链接,即

class MailBuilder {
private $subject;
private$ $body;

public function setSubject($body) {
  $this->body = $body;

  return $this; 
}

public function setBody($body) {
  $this->subject = $subject;

  return $this; 
}
}
然后你可以做一些类似的事情:

$builder = new MailBuilder();
$builder->setSubject('something')->setBody('something');
因此,您可以这样做,因为这些方法将返回对象本身,尽管您可以将调用链接到下一个方法

记住这样的代码(调用嵌套太深的对象)是不好的(称为火车失事):


这些不是子方法,而是方法链接。在本例中,
Log::Bank($var1,$var2)
将返回一个对象。从该方法返回的对象上有一个可以使用的
start()
方法。因此,当您在末尾添加
->start()
时,您将在返回的对象上运行它。

这些不是子方法,而是方法链接。在本例中,
Log::Bank($var1,$var2)
将返回一个对象。从该方法返回的对象上有一个可以使用的
start()
方法。因此,当您添加
->start()时
最后,您将在返回的对象上运行它。

您是否有任何指向教程的链接,我可以在其中阅读并理解它们是如何工作的以及它们是如何创建的?我建议这样做是为了更好地掌握php中的oo,文档对此非常有用-如果格式不适合您,您可以查看其他一些教程,只需搜索php oo教程。。。顺便说一句,$对象(类)上下文中的this将返回该对象的实例(在我的示例中是MailBuilder)你有没有任何教程的链接,我可以在这里阅读和理解它们是如何工作的,以及它们是如何创建的?我建议你这样做是为了更好地掌握php中的oo,文档对此非常有用-如果格式不适合你,你可以查看其他一些教程,只需搜索php oo教程。。。顺便说一句,$对象(类)上下文中的this将返回该对象的实例(在我的示例中是MailBuilder)