0
$var = Foo::bar('aaa', 'bbb')
      ->add('something', AnyClass::instance($var, 'something'));

Foo::bar()オブジェクトを返し、add()何かを行い、2 番目の引数として新しいクラスを受け取ります。このクラスには現在の Foo オブジェクトが必要です。

2 つのステートメントに分けずにこれを行う方法はありますか?Foo::bar()。

4

1 に答える 1

1

他のいくつかの言語では、次のようなことを言うことができます

(var = Foo::bar('aaa', 'bbb'))->add(...);

(括弧内は代入部分)。残念なことに (少なくとも 5.3 の時点では)、PHP のパーサーはその点でかなりお粗末で、試してみるとびっくりしてしまいます。

そのため、2 つのステートメントに分割するかreturn $thisaddメソッドから作成する必要があるようです。

それを除けば、私が頭のてっぺんから思いつくことができる最高のものは

call_user_func(array($var = Foo::bar('aaa', 'bbb'), 'add'), 'something', ...);

誰ももっと読みやすいとは思わないでしょう。:P

于 2013-03-01T19:46:07.373 に答える