Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengatasi Argumen Fungsi Lalai dalam PHP Semasa Mengekalkan Yang Lain?

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

Linda Hamilton
Linda Hamiltonasal
2024-10-30 21:18:03616semak imbas

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>

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>

atau

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

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>

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>

Ini membolehkan anda membuat panggilan seperti:

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

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!

Kenyataan:
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