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
Lepaskan: 2025-01-01 01:03:10
asal
811 orang telah melayarinya

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...
Salin selepas log masuk

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;
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan