Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Harus Mengendalikan Notis Penamatan Jenis Pemulangan dalam PHP?

Bagaimanakah Saya Harus Mengendalikan Notis Penamatan Jenis Pemulangan dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-11-01 03:38:27492semak imbas

How Should I Handle Return Type Deprecation Notices in PHP?

Rujukan: Jenis pengembalian ... harus sama ada serasi dengan ..., atau atribut #[ReturnTypeWillChange] harus digunakan

Latar Belakang: Jenis pengembalian dan kovarians

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.

Keserasian dan penamatan ke belakang

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.

Atribut #[ReturnTypeWillChange]

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.

Penyelesaian

  1. Kenal pasti kaedah dan jenis pulangan yang betul daripada notis susut nilai.
  2. Tentukan tindakan anda:

    • Tunggu kemas kini perpustakaan atau sambungan (tiada tindakan diperlukan).
    • Semak sama ada kelas sudah mengembalikan jenis yang betul.
    • Tentukan sama ada menukar jenis pemulangan selamat untuk permohonan anda dan melanjutkan kelas.
  3. Jika selamat untuk menukar jenis pemulangan:

    • Tambah jenis pemulangan.
  4. Jika anda perlu menyokong versi PHP lama atau kod yang tidak dikemas kini:

    • Tambah # Atribut [ReturnTypeWillChange] buat sementara waktu.

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!

Kenyataan:
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