Rumah  >  Soal Jawab  >  teks badan

Parameter pilihan $xxx selepas $yyy diperlukan

<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>
P粉764836448P粉764836448402 hari yang lalu507

membalas semua(2)saya akan balas

  • P粉616383625

    P粉6163836252023-08-16 14:16:18

    Parameter yang diperlukan tanpa nilai lalai hendaklah diletakkan dahulu.

    function test_function(int $xxx, int $yyy = 2)
    {
        return $xxx * $yyy;
    }

    balas
    0
  • P粉451614834

    P粉4516148342023-08-16 09:03:20

    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.

    function test_function(int $var1, int $var2) {
        return $var1 / $var2;
    }
    

    balas
    0
  • Batalbalas