Rumah >pembangunan bahagian belakang >tutorial php >PHP 8.0: Mengapa Parameter yang Diperlukan Kini Perlu Mendahului Parameter Pilihan?

PHP 8.0: Mengapa Parameter yang Diperlukan Kini Perlu Mendahului Parameter Pilihan?

DDD
DDDasal
2025-01-01 01:03:10912semak imbas

PHP 8.0: Why Do Required Parameters Now Need to Precede Optional Ones?

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!

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