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>
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>
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>
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!