Bagaimanakah 'foreach' PHP sebenarnya berfungsi?
Foreach PHP berulang ke atas tatasusunan, objek dan Boleh Dilalui objek.
Susun atur:
- Foreach berulang ke atas kunci dan nilai tatasusunan.
- Pengubahsuaian semasa lelaran boleh membawa kepada tingkah laku yang tidak dijangka.
- Dalam PHP 5, foreach menggunakan penunjuk tatasusunan dalaman (IAP) yang boleh dikongsi antara berbilang gelung, yang membawa kepada tingkah laku yang kompleks.
- Dalam PHP 7, foreach menggunakan lelaran jadual cincang luaran yang selamat, menghapuskan keperluan untuk IAP.
Objek:
- Foreach berulang ke atas sifat objek dan nilai.
- Pengubahsuaian semasa lelaran dicerminkan dalam gelung.
- Ini disebabkan oleh semantik hantaran by-handle PHP, yang menjadikan objek berkelakuan seperti rujukan.
Boleh dilalui Objek:
- Foreach pada asasnya menyediakan pintasan sintaksis untuk melintasi objek Boleh Dilalui.
Contoh:
- Penduaan: PHP 5 menduplikasi tatasusunan sebelum diulang jika tatasusunan itu bukan rujukan dan mempunyai kiraan rujukan lebih besar daripada 1. PHP 7 mengelakkan pertindihan ini apabila boleh.
- Tertib Kemajuan Kedudukan: Foreach memajukan penuding tatasusunan sebelum badan gelung berjalan, jadi ia berfungsi pada elemen i 1 semasa badan gelung masih pada elemen i.
- Pengubahsuaian Semasa Lelaran: Foreach melangkau elemen yang dialih keluar dalam PHP 5 kerana pergantungannya pada IAP. Dalam PHP 7, foreach terus berulang walaupun selepas penyingkiran elemen.
- Reset() dan Each(): Dalam PHP 5, mekanisme sandaran dan pemulihan HashPointer menghalang set semula() daripada menjejaskan foreach. Dalam PHP 7, reset() berfungsi secara bebas daripada foreach.
- Entiti Bergantian: PHP membenarkan penggantian entiti lelaran semasa gelung (cth., bermula dengan tatasusunan dan bertukar kepada objek).
Ringkasnya:
Foreach PHP mengulangi tatasusunan dan objek dengan cekap, menyediakan akses mudah kepada elemennya. Memahami butiran pelaksanaannya (terutamanya perbezaan antara PHP 5 dan PHP 7) boleh membantu anda mengelakkan tingkah laku yang tidak dijangka semasa mengubah suai tatasusunan semasa lelaran.
Atas ialah kandungan terperinci Bagaimanakah Gelung `foreach` PHP Berfungsi Secara Dalaman, dan Bagaimana Pelaksanaannya Berubah Antara PHP 5 dan PHP 7?. 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