$var = Foo::bar('aaa', 'bbb')
->add('something', AnyClass::instance($var, 'something'));
Foo::bar()
返回其对象,add()
执行某些操作,并将新类作为第二个参数。这个类需要当前的Foo对象。
有没有办法在不将它分成两个语句的情况下执行此操作?Foo :: bar()。
答案 0 :(得分:1)
其他一些语言可以让您说出像
这样的内容(var = Foo::bar('aaa', 'bbb'))->add(...);
(括号中的赋值部分)。不幸的是(至少从5.3开始),PHP的解析器在这方面相当糟糕,并且当你尝试时会变得怪异。
因此看起来您必须将其分解为两个语句,或return $this
方法中的add
。
除此之外,我能想到的最好的是
call_user_func(array($var = Foo::bar('aaa', 'bbb'), 'add'), 'something', ...);
我认为没有人会认为更具可读性。 :P