Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengatasi Argumen Fungsi Lalai dalam PHP?

Bagaimana untuk Mengatasi Argumen Fungsi Lalai dalam PHP?

DDD
DDDasal
2024-11-02 10:55:31729semak imbas

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>

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>

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>

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>

Kini, adalah mungkin untuk menggunakan fungsi dengan variasi seperti:

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

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!

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