我想知道是否有办法在PHP中新创建的对象上链接方法?
就像是:
class Foo {
public function xyz() { ... return $this; }
}
$my_foo = new Foo()->xyz();
Run Code Online (Sandbox Code Playgroud)
有人知道实现这个目标的方法吗?
为什么使用new关键字的表达式需要括号才能在链式执行中使用?例如,在AS3中,您不需要括号.在PHP中,这是解释器的风格辅助,还是有一个我不知道的更大的原因?它是执行优先级问题的顺序吗?
用PHP链接的构造函数
感谢这个问题用PHP中的对象函数调用链接构造函数我想出了如何...
对象定义
旁白:显然魔术方法__construct总是隐式返回$this,如果你明确地返回$this(或任何事情),就不会发生错误/警告/异常.
class Chihuahua
{
private $food;
function __construct( $food )
{
$this->food = $food;
}
function burp()
{
echo "$this->food burp!";
}
}
Run Code Online (Sandbox Code Playgroud)
作品
(new Chihuahua('cake'))->burp();
Run Code Online (Sandbox Code Playgroud)
不起作用(但我希望它能)
new Chihuahua('cake')->burp();
Run Code Online (Sandbox Code Playgroud)