在PHP中链接一个新的对象实例

Дам*_*чев 3 php

我们有以下链接:

$obj = new obj();
$obj->setname($params1)->setcolor($params2);
Run Code Online (Sandbox Code Playgroud)

有没有办法在一行上进行相同的链接,而不创建虚拟函数?

PS:我想跳过构造函数本身在新行上的部分.我想构造对象并在同一行开始链接.像这样的东西:

$obj = new obj()->setname($params1)->setcolor($params2);
Run Code Online (Sandbox Code Playgroud)

ddi*_*hev 9

从PHP 5.4开始,已添加实例化的类成员访问权限,因此您可以这样做:

$obj = (new obj())->setname($params1)->setcolor($params2);
Run Code Online (Sandbox Code Playgroud)

在以前的版本中,像你一样我讨厌你必须在一行上实例化对象然后开始在另一行上使用它,所以我有一个全局函数_i(),如下所示:

function _i($i) { return $i; }
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

_i(new Obj)->doThis($param)->doThat($param2);
Run Code Online (Sandbox Code Playgroud)

有些人会发现它很丑,但PHP缺乏语言表达能力,所以它对我有用:)