Cara Merangkai Kaedah pada Objek Baru Dicipta dalam PHP

Susan Sarandon
Lepaskan: 2024-10-18 14:58:41
asal
611 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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

Atas ialah kandungan terperinci Cara Merangkai Kaedah pada Objek Baru Dicipta dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!