PHP 8.0: Parameter Diperlukan Mengikuti Parameter Pilihan
Dengan peningkatan kepada PHP 8.0, pembangun mungkin menghadapi ralat berikut:
Deprecated: Required parameter $xxx follows optional parameter $yyy in...
Ralat ini timbul apabila pengisytiharan fungsi termasuk parameter pilihan diikuti dengan yang diperlukan parameter. Sebagai contoh, kod berikut akan mencetuskan ralat:
function test_function(int $var1 = 2, int $var2) { return $var1 / $var2; }
Menjelaskan Implikasi Fungsian
Dalam versi PHP sebelum 8.0, pengisytiharan fungsi tersebut dibenarkan. Walau bagaimanapun, mereka memperkenalkan ketidakkonsistenan dan kekeliruan apabila menganalisis fungsi dan kaedah menggunakan kelas ReflectionFunctionAbstract.
Keperluan Baharu
PHP 8.0 menguatkuasakan pendekatan yang lebih logik dengan menghendaki semua itu diperlukan parameter mesti diisytiharkan sebelum sebarang pilihan parameter.
Penyelesaian Disyorkan
Untuk menyelesaikan ralat, cuma alih keluar nilai lalai daripada parameter pilihan. Memandangkan fungsi tidak boleh digunakan tanpa menyatakan semua parameter, fungsi tersebut harus kekal tidak terjejas:
function test_function(int $var1, int $var2) { return $var1 / $var2; }
Atas ialah kandungan terperinci PHP 8.0: Mengapa Parameter yang Diperlukan Kini Perlu Mendahului Parameter Pilihan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!