$var = Foo::bar('aaa', 'bbb')
->add('something', AnyClass::instance($var, 'something'));
Foo::bar()
オブジェクトを返し、add()
何かを行い、2 番目の引数として新しいクラスを受け取ります。このクラスには現在の Foo オブジェクトが必要です。
2 つのステートメントに分けずにこれを行う方法はありますか?Foo::bar()。
$var = Foo::bar('aaa', 'bbb')
->add('something', AnyClass::instance($var, 'something'));
Foo::bar()
オブジェクトを返し、add()
何かを行い、2 番目の引数として新しいクラスを受け取ります。このクラスには現在の Foo オブジェクトが必要です。
2 つのステートメントに分けずにこれを行う方法はありますか?Foo::bar()。
他のいくつかの言語では、次のようなことを言うことができます
(var = Foo::bar('aaa', 'bbb'))->add(...);
(括弧内は代入部分)。残念なことに (少なくとも 5.3 の時点では)、PHP のパーサーはその点でかなりお粗末で、試してみるとびっくりしてしまいます。
そのため、2 つのステートメントに分割するかreturn $this
、add
メソッドから作成する必要があるようです。
それを除けば、私が頭のてっぺんから思いつくことができる最高のものは
call_user_func(array($var = Foo::bar('aaa', 'bbb'), 'add'), 'something', ...);
誰ももっと読みやすいとは思わないでしょう。:P