【发布时间】:2016-06-15 02:35:50
【问题描述】:
我尝试在下面创建一个这样的函数,如何做到这一点,有什么例子吗?
$myClass->first()->callSecond();
【问题讨论】:
-
这只是意味着
$myClass->first()的结果是一个对象,方法是callSecond()
我尝试在下面创建一个这样的函数,如何做到这一点,有什么例子吗?
$myClass->first()->callSecond();
【问题讨论】:
$myClass->first()的结果是一个对象,方法是callSecond()
你只需要一直返回对象。它被称为fluent interface。它可以是自己或其他对象。
<php
class A
{
public function first()
{
// Do something
return $this;
}
public function callSecond()
{
// Do somewthing else
return $this;
}
}
$a = (new A())->first()->callSecond();
【讨论】:
<?php
class OtherClass{
public function callSecond(){
echo 'Second Called';
}
}
class MyClass{
public function first(){
return new OtherClass();
}
}
$myClass = new MyClass();
$myClass->first()->callSecond();
?>
【讨论】: