Rumah > Soal Jawab > teks badan
rreeee
Sejak menaik taraf kepada PHP 8.0, ralat ini dilemparkan apabila menjalankan kod berikut:
Deprecated: Required parameter $xxx follows optional parameter $yyy in...
Ini berfungsi tanpa masalah dalam versi PHP yang lalu.
P粉0215534602023-10-19 10:29:39
Parameter yang diperlukan tanpa nilai lalai harus didahulukan.
function test_function(int $xxx, int $yyy = 2) { return $xxx * $yyy; }
P粉4278776762023-10-19 00:33:30
Cara pengisytiharan fungsiini telah ditamatkan dalam PHP 8.0. Tidak masuk akal untuk menulis fungsi seperti ini kerana semua hujah (sehingga yang terakhir, yang diperlukan) perlu dinyatakan semasa memanggil fungsi tersebut. Ia juga menggunakan kelas Menyebabkan kekeliruan ::getNumberOfRequiredParameters" rel="noreferrer">ReflectionFunctionAbstract
untuk menghuraikan fungsi dan kaedah.
Pemberhentian baharu hanya memastikan bahawa tandatangan fungsi mengikut andaian akal bahawa parameter yang diperlukan yang mesti ada hendaklah sentiasa diisytiharkan sebelum parameter pilihan.
Fungsi ini harus ditulis semula untuk mengalih keluar nilai lalai untuk parameter terdahulu. Oleh kerana fungsi itu tidak boleh dipanggil tanpa mengisytiharkan semua hujah, ini sepatutnya tidak mempunyai kesan ke atas fungsinya.
function test_function(int $var1, int $var2) { return $var1 / $var2; }