Chaining Methods on Newly Created Objects in PHP
In PHP, there is a common desire to chain methods on a newly created object, similar to the example shown below:
<code class="php">class Foo { public function xyz() { ... return $this; } } $my_foo = new Foo()->xyz();</code>
PHP 5.4+ Solution
Starting in PHP 5.4, a change in the parser allows for chaining methods on newly created objects. This can be achieved by wrapping the instantiation in parentheses:
<code class="php">(new Foo())->xyz();</code>
Pre-PHP 5.4 Solution
Prior to PHP 5.4, chaining methods on newly created objects was not possible directly using the new Classname(); syntax. However, there are workarounds to accomplish this:
Static Instantiation Method
One common approach is to create a static instantiation method within the class. This method can then be used to instantiate the class with an initial method call:
<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>
By wrapping the instantiation in a static method, you can achieve the desired chaining behavior.
위 내용은 PHP에서 새로 생성된 객체에 메소드를 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!