Bagaimana untuk Mengatasi Argumen Fungsi Lalai dalam PHP Semasa Mengekalkan Yang Lain?

Linda Hamilton
Lepaskan: 2024-10-30 21:18:03
asal
614 orang telah melayarinya

How to Override Default Function Arguments in PHP While Maintaining Others?

Mengatasi Argumen Fungsi Lalai dalam PHP

Fungsi PHP menyokong penggunaan argumen lalai untuk menetapkan nilai sandaran apabila menggunakan fungsi tersebut. Walau bagaimanapun, menetapkan hujah tertentu sambil mengekalkan lalai untuk hujah sebelumnya boleh mencabar.

Pertimbangkan fungsi berikut:

<code class="php">function foo($blah, $x = "some value", $y = "some other value") {
}</code>
Salin selepas log masuk

Argumen lalai untuk $x dan $y ialah "beberapa nilai" dan "beberapa nilai lain," masing-masing. Tetapi bagaimana jika anda ingin mengatasi nilai lalai untuk $y semasa menggunakan lalai untuk $x?

Mengatasi dengan Nilai Null

Percubaan untuk mengatasi lalai menggunakan null, seperti:

<code class="php">foo("blah", null, "test"); // Does not work</code>
Salin selepas log masuk

atau

<code class="php">foo("blah", "", "test"); // Does not work</code>
Salin selepas log masuk

tidak akan menghasilkan hasil yang diingini.

Tetapan mengikut Nama Pembolehubah

Pendekatan lain, memberikan pembolehubah lalai kepada nama pembolehubah, seperti:

<code class="php">foo("blah", $x, $y = "test");</code>
Salin selepas log masuk

juga gagal mengatasi lalai.

Penyelesaian untuk Mengatasi

Untuk mengatasi cabaran ini, ubah suai pengisytiharan fungsi seperti berikut:

<code class="php">function foo($blah, $x = null, $y = null) {
    if (null === $x) {
        $x = "some value";
    }

    if (null === $y) {
        $y = "some other value";
    }
}</code>
Salin selepas log masuk

Ini membolehkan anda membuat panggilan seperti:

<code class="php">foo('blah', null, 'non-default y value');</code>
Salin selepas log masuk

dan masih mengekalkan nilai lalai untuk $x.

Nota: Argumen lalai sahaja berfungsi sebagai hujah terakhir kepada fungsi tersebut. Mengeluarkan parameter dan mengatasi parameter berikut tidak mungkin apabila mengisytiharkan nilai lalai dalam definisi fungsi.

Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Argumen Fungsi Lalai dalam PHP Semasa Mengekalkan Yang Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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!