Bagaimana untuk Mengatasi Argumen Fungsi Lalai dalam PHP?

DDD
Lepaskan: 2024-11-02 10:55:31
asal
728 orang telah melayarinya

How to Override Default Function Arguments in PHP?

Mengatasi Argumen Fungsi Lalai

Apabila mengisytiharkan fungsi PHP dengan argumen lalai, adalah penting untuk memahami cara mengatasi nilai tersebut semasa masih menggunakan lalai hujah untuk orang lain. Pertimbangkan fungsi berikut:

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

Untuk menggunakan hujah lalai untuk $x semasa menetapkan nilai yang berbeza untuk $y, percubaan salah berikut tidak akan berfungsi:

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

Memandangkan mereka jangan berikan nilai lalai yang dikehendaki kepada $x. Selain itu, cubaan untuk menetapkan hujah dengan nama pembolehubah:

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

gagal menghasilkan hasil yang diharapkan.

Untuk mencapai gelagat yang diingini, pertimbangkan untuk mengubah 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 here!
}</code>
Salin selepas log masuk

Kini, adalah mungkin untuk menggunakan fungsi dengan variasi seperti:

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

dan tetapkannya $x kepada nilai lalai sambil mengatasi $y.

Ia penting untuk ambil perhatian bahawa parameter lalai hanya digunakan pada argumen terakhir dalam definisi fungsi. Jika berbilang parameter mengikut parameter pilihan dengan nilai lalai, tidak mungkin untuk meninggalkan satu dan menentukan yang berikut.

Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Argumen Fungsi Lalai dalam PHP?. 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
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!