Sejak PHP 7.0, jenis pulangan untuk fungsi dan kaedah telah tersedia. Ini membentuk kontrak yang boleh dipercayai oleh kod lain.
Contohnya:
<code class="php">class Base { public function getList(): Iterator { // ... } } // Calling code: $foo = new Base(); var_dump($foo instanceOf Base); // true var_dump($foo->getList() instanceOf Iterator); // true</code>
Apabila melanjutkan kelas, jenis pulangan yang lebih khusus boleh ditakrifkan (kovarians). Walau bagaimanapun, menyatakan jenis pulangan yang berbeza atau tiada jenis pulangan adalah tidak dibenarkan.
Menambah jenis pulangan pada kelas atau antara muka sedia ada memerlukan perubahan dalam melanjutkan atau melaksanakan kelas. Dengan pengenalan Jenis Kesatuan dalam PHP 8.0, jenis pemulangan telah didokumenkan tetapi tidak dikuatkuasakan sebagai ralat. Sebaliknya, notis penamatan telah ditambahkan.
Kod bercanggah yang perlu menyokong berbilang versi PHP dan jenis pengembalian pra-8.0 membawa kepada pembangunan #[ReturnTypeWillChange ] atribut. Apabila ditambahkan pada kaedah, ia menyekat notis penamatan dalam PHP 8.1. Ini memberi masa untuk membetulkan isu sebelum PHP 9.0, di mana jenis pulangan dalaman mungkin dikuatkuasakan.
Tentukan tindakan anda:
Jika selamat untuk menukar jenis pemulangan:
Jika anda perlu menyokong versi PHP lama atau kod yang tidak dikemas kini:
Atas ialah kandungan terperinci Bagaimanakah Saya Harus Mengendalikan Notis Penamatan Jenis Pemulangan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!