Rumah > pembangunan bahagian belakang > tutorial php > Cara Menggunakan Argumen Lalai dalam Fungsi PHP Apabila Anda Hanya Mahu Mengatasi Sebahagian daripadanya?

Cara Menggunakan Argumen Lalai dalam Fungsi PHP Apabila Anda Hanya Mahu Mengatasi Sebahagian daripadanya?

Patricia Arquette
Lepaskan: 2024-10-29 09:22:30
asal
584 orang telah melayarinya

How to Use Default Arguments in PHP Functions When You Only Want to Override Some of Them?

Menggunakan Argumen Lalai dalam Fungsi PHP

Apabila memberikan nilai lalai kepada parameter fungsi dalam PHP, adalah penting untuk memahami batasannya. Pertimbangkan fungsi dengan parameter seperti:

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

Bagaimana jika anda mahu menggunakan hujah lalai untuk $x tetapi menentukan nilai yang berbeza untuk $y?

Melalui null untuk $x tidak' t berfungsi kerana PHP mentafsirkannya sebagai peninggalan nilai yang disengajakan. Untuk menangani perkara ini, pertimbangkan pendekatan 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

Dengan pengubahsuaian ini, anda boleh memanggil foo('blah', null, 'test') untuk menggunakan lalai untuk $x dan menentukan nilai tersuai untuk $y.

Adalah penting untuk ambil perhatian bahawa mekanisme parameter lalai PHP digunakan pada argumen terakhir dalam fungsi. Jika hujah yang diingini bukan yang terakhir, anda tidak boleh meninggalkan hujah lalai.

Dalam situasi di mana anda ingin mengendalikan kiraan dan jenis parameter yang berbeza-beza, anda boleh mempertimbangkan pendekatan yang lebih fleksibel:

<code class="php">public function __construct($params = null)
{
    if ($params instanceof SOMETHING) {
        // Single parameter of type SOMETHING
    } elseif (is_string($params)) {
        // Single string argument
    } elseif (is_array($params)) {
        // Array of properties
    } elseif (func_num_args() == 3) {
        // 3 parameters passed
    } elseif (func_num_args() == 5) {
        // 5 parameters passed
    } else {
        throw new \InvalidArgumentException("Could not figure out parameters!");
    }
}</code>
Salin selepas log masuk

Kaedah ini memberikan lebih fleksibiliti dalam mengendalikan pelbagai senario input.

Atas ialah kandungan terperinci Cara Menggunakan Argumen Lalai dalam Fungsi PHP Apabila Anda Hanya Mahu Mengatasi Sebahagian daripadanya?. 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