Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah Parameter Fungsi PHP 8.0 Diperlukan Kini Diperlukan untuk Mendahului Parameter Pilihan?

Mengapakah Parameter Fungsi PHP 8.0 Diperlukan Kini Diperlukan untuk Mendahului Parameter Pilihan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-30 08:54:11131semak imbas

Why Are Required PHP 8.0 Function Parameters Now Required to Precede Optional Ones?

Perubahan Sintaks Parameter Fungsi PHP 8.0: Parameter Diperlukan Mesti Mendahului Pilihan

PHP 8.0 memperkenalkan amaran penamatan apabila parameter fungsi yang diperlukan mengikuti parameter pilihan. Ralat ini berlaku kerana versi lama PHP membenarkan tingkah laku ini, yang tidak masuk akal kerana semua parameter sehingga yang terakhir diperlukan perlu ditentukan.

Contoh:

Pertimbangkan fungsi berikut:

function test_function(int $var1 = 2, int $var2) {
    return $var1 / $var2;
}

Dalam PHP 8.0, fungsi ini akan membuang penamatan berikut amaran:

Deprecated: Required parameter $var2 follows optional parameter $var1 in...

Sebab Penamatan:

Perubahan ini memastikan tandatangan fungsi mematuhi andaian akal bahawa parameter yang diperlukan harus diisytiharkan sebelum yang pilihan. Ini menjelaskan tingkah laku fungsi dan memudahkan analisis menggunakan kelas ReflectionFunctionAbstract.

Penyelesaian:

Untuk menyelesaikan isu ini, cuma alih keluar nilai lalai daripada parameter terdahulu. Untuk contoh di atas, fungsi akan ditulis semula sebagai:

function test_function(int $var1, int $var2) {
    return $var1 / $var2;
}

Perubahan ini tidak seharusnya menjejaskan kefungsian fungsi kerana ia tidak boleh dipanggil tanpa mengisytiharkan semua parameter.

Atas ialah kandungan terperinci Mengapakah Parameter Fungsi PHP 8.0 Diperlukan Kini Diperlukan untuk Mendahului Parameter Pilihan?. 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