Chaining Methods on a Newly Created Object
In PHP, it's not immediately clear if it's possible to chain methods on a newly created object. This question explores this question, asking if there's a way to achieve the following syntax:
<code class="php">class Foo { public function xyz() { ... return $this; } } $my_foo = new Foo()->xyz();</code>
In PHP 5.4+, the parser has been modified to allow chaining directly after instantiation:
<code class="php">(new Foo())->xyz();</code>
Simply wrap the instantiation in parentheses and proceed with chaining.
However, in PHP 5.3 and earlier, chaining directly after instantiation is not possible due to limitations in the syntax. To workaround this, one can use a static instantiation method:
<code class="php">class Foo { public function xyz() { echo "Called","\n"; return $this; } static public function instantiate() { return new self(); } } $a = Foo::instantiate()->xyz();</code>
위 내용은 PHP에서 새 개체에 메서드를 연결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!