PHP方法链 – 反映?
作者:互联网
是否有可能反映一系列方法调用,以确定您在调用链中的位置?
至少,是否有可能辨别一个方法是否是链中的最后一个调用?
$instance->method1()->method2()->method3()->method4()
是否可以使用返回对象实例的属性执行相同操作?
$instances->property1->property2->property3->property4
解决方法:
如果您正在调用的所有方法都返回相同的对象来创建流畅的接口(而不是将不同的对象链接在一起),那么在方法本身中记录方法调用应该是相当简单的.
例如:
class Eg {
protected $_callStack = array();
public function f1()
{
$this->_callStack[] = __METHOD__;
// other work
}
public function f2()
{
$this->_callStack[] = __METHOD__;
// other work
}
public function getCallStack()
{
return $this->_callStack;
}
}
然后链接这些电话
$a = new Eg;
$a->f1()->f2()->f1();
会离开调用堆栈,如:
数组(‘f1′,’f2′,’f1’);
标签:php,methods,properties,reflection,method-chaining 来源: https://codeday.me/bug/20190627/1301808.html