>백엔드 개발 >PHP 튜토리얼 >PHP에서 새로 생성된 객체에 메소드를 연결하는 방법

PHP에서 새로 생성된 객체에 메소드를 연결하는 방법

Susan Sarandon
Susan Sarandon원래의
2024-10-18 14:58:41717검색

How to Chain Methods on Newly Created Objects in PHP

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()-&gt;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())-&gt;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()-&gt;xyz();</code>

By wrapping the instantiation in a static method, you can achieve the desired chaining behavior.

위 내용은 PHP에서 새로 생성된 객체에 메소드를 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.