Parameter pilihan $xxx selepas $yyy diperlukan
P粉764836448
2023-08-15 21:10:56
<p><br /></p>
<pre class="brush:none;toolbar:false;">DITAMAT: Parameter yang diperlukan $xxx mengikut parameter pilihan $yyy...
</pra>
<p>Sejak menaik taraf kepada PHP 8.0, ralat ini dilemparkan apabila menjalankan kod berikut: </p>
<pre class="brush:php;toolbar:false;">function test_function(int $var1 = 2, int $var2) {
pulangkan $var1 / $var2;
}
</pra>
<p>Dalam versi PHP yang lalu, ini tiada masalah. </p>
Parameter yang diperlukan tanpa nilai lalai hendaklah diletakkan dahulu.
Cara pengisytiharan fungsi ini telah ditamatkan dalam PHP 8.0 . Tidak masuk akal untuk menulis fungsi seperti ini kerana semua hujah (sehingga hujah terakhir yang diperlukan) perlu dinyatakan semasa memanggil fungsi. Ini juga menimbulkan kekeliruan apabila masalah timbul apabila menggunakan
ReflectionFunctionAbstract
kelas untuk menganalisis fungsi dan kaedah.Pemberhentian baharu hanya memastikan bahawa tandatangan fungsi mengikut andaian akal bahawa parameter yang diperlukan hendaklah sentiasa diisytiharkan sebelum parameter pilihan.
Fungsi harus ditulis semula untuk mengalih keluar nilai lalai parameter sebelumnya. Memandangkan fungsi tidak pernah dipanggil tanpa mengisytiharkan semua parameternya, ini tidak mempunyai kesan ke atas fungsinya.