Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bincangkan masalah mudah ralat bagi tatasusunan keluaran gelung dalam PHP

Bincangkan masalah mudah ralat bagi tatasusunan keluaran gelung dalam PHP

PHPz
PHPzasal
2023-04-18 14:06:28974semak imbas

Dalam PHP, gelung for ialah struktur gelung yang biasa digunakan, yang boleh merentasi semua elemen dalam tatasusunan dan melaksanakan operasi dengan mudah. Walau bagaimanapun, apabila kita menggunakan gelung for untuk mengeluarkan tatasusunan, terdapat banyak kawasan yang terdedah kepada ralat untuk diberi perhatian. Dalam artikel ini, kami akan meneroka titik rawan ralat ini secara terperinci dan menyediakan penyelesaian yang sepadan.

  1. Subskrip tatasusunan bermula dari 0

Dalam PHP, subskrip tatasusunan bermula dari 0, iaitu elemen pertama dalam tatasusunan Indeks ialah 0, yang kedua elemen mempunyai indeks 1, dan seterusnya. Oleh itu, apabila menggunakan gelung for untuk mengeluarkan tatasusunan, kita perlu mula merentasi dari elemen pertama tatasusunan, iaitu, dari elemen dengan indeks 0.

Contohnya, terdapat array $colors, yang mengandungi tiga elemen iaitu merah, hijau dan biru. Apabila menggunakan gelung for untuk mengeluarkan tatasusunan, kita harus menulis seperti ini:

$colors = array("红色", "绿色", "蓝色");
for ($i = 0; $i < count($colors); $i++) {
    echo $colors[$i] . "<br>";
}

Jika kita mula melintasi elemen dengan indeks 1, elemen pertama akan terlepas dan hasil output akan menjadi salah.

  1. Fungsi count() mendapat panjang tatasusunan

Apabila menggunakan gelung for untuk mengeluarkan tatasusunan, kita selalunya perlu mengetahui panjang tatasusunan untuk tetapkan keadaan penamatan gelung. Dalam PHP, anda boleh menggunakan fungsi count() untuk mendapatkan panjang tatasusunan, contohnya:

$colors = array("红色", "绿色", "蓝色");
$len = count($colors); // $len的值为3
for ($i = 0; $i < $len; $i++) {
    echo $colors[$i] . "<br>";
}

Perlu diingatkan bahawa fungsi count() mendapat panjang tatasusunan, iaitu bilangan elemen dalam tatasusunan , bukannya nilai subskrip terbesar. Oleh itu, apabila menggunakan gelung for, syarat penamatan mesti menggunakan tanda kurang daripada (<) dan bukannya tanda kurang daripada atau sama (<=), jika tidak, ralat di luar sempadan akan berlaku.

  1. Penamaan pembolehubah gelung

Pembolehubah gelung memainkan peranan yang sangat penting dalam gelung for, yang menentukan bilangan gelung dan elemen yang diproses dalam setiap gelung . Oleh itu, apabila menamakan pembolehubah gelung, anda harus mengelak daripada menamakannya dengan nama yang sama sebagai elemen dalam tatasusunan, jika tidak pembolehubah akan ditimpa dan ralat yang tidak dapat diramalkan akan berlaku.

Sebagai contoh, terdapat tatasusunan $numbers, yang mengandungi nombor 1 hingga 3. Apabila menggunakan gelung for untuk mengeluarkan tatasusunan, kita harus menulis seperti ini:

$numbers = array(1, 2, 3);
for ($i = 0; $i < count($numbers); $i++) {
    echo $numbers[$i] . "<br>";
}</p>
<p>Jika kita menamakan pembolehubah gelung $number, ia akan mempunyai nama yang sama dengan elemen $numbers dalam tatasusunan, menyebabkan $number to be in Ia ditimpa dalam gelung dan hasil output tidak betul. </p>
<ol start="4"><li>Perbezaan antara tatasusunan diindeks dan tatasusunan bersekutu</li></ol>
<p>Dalam PHP, tatasusunan boleh dibahagikan kepada dua jenis: tatasusunan diindeks dan tatasusunan bersekutu. Subskrip elemen dalam tatasusunan indeks ialah nombor, meningkat daripada 0 manakala subskrip elemen dalam tatasusunan bersekutu ialah rentetan, yang boleh berupa sebarang aksara. Apabila menggunakan gelung for untuk mengeluarkan tatasusunan, kita perlu memberi perhatian kepada jenis tatasusunan dan menggunakan kaedah yang sepadan untuk melintasi. </p>
<p>Sebagai contoh, terdapat tatasusunan indeks $nombor dan tatasusunan bersekutu $orang, yang masing-masing mengandungi unsur jenis angka dan rentetan. Apabila menggunakan gelung for untuk mengeluarkan dua tatasusunan ini, kita harus menulis seperti ini: </p>
<pre class="brush:php;toolbar:false">$numbers = array(1, 2, 3);
for ($i = 0; $i < count($numbers); $i++) {
    echo $numbers[$i] . "<br>";
}

$person = array("name" => "小明", "age" => 18, "gender" => "男");
foreach ($person as $key => $value) {
    echo $key . ": " . $value . "<br>";
}

Perlu diambil perhatian bahawa apabila merentasi tatasusunan bersekutu, kita menggunakan gelung foreach dan bukannya gelung for, dan keperluan pembolehubah gelung Mengandungi kedua-dua kunci dan nilai elemen tatasusunan.

  1. Elakkan mengubah suai tatasusunan dalam gelung

Apabila menggunakan gelung for untuk mengeluarkan tatasusunan, selalunya perlu melakukan operasi berkaitan pada elemen tatasusunan, seperti mendapatkan nilai elemen dan mengubah suai elemen. Apabila mengubah suai tatasusunan, kita perlu berhati-hati untuk tidak mengubah suai tatasusunan dalam badan gelung, jika tidak, ralat yang tidak dapat diramalkan mungkin berlaku.

Sebagai contoh, terdapat tatasusunan $numbers, yang mengandungi nombor 1 hingga 5. Semasa menggelung melalui tatasusunan ini, kami ingin menggandakan semua elemen dalam tatasusunan. Kita harus menulis seperti ini:

$numbers = array(1, 2, 3, 4, 5);
for ($i = 0; $i < count($numbers); $i++) {
    $numbers[$i] *= 2;
    echo $numbers[$i] . "<br>";
}

Jika kita meletakkan operasi pengubahsuaian tatasusunan selepas pernyataan gema, nilai elemen tatasusunan akan menjadi salah.

Ringkasan

Dalam PHP, gelung for ialah struktur gelung yang biasa digunakan, yang boleh merentasi semua elemen dalam tatasusunan dan melaksanakan operasi dengan mudah. Apabila menggunakan gelung for untuk mengeluarkan tatasusunan, anda perlu memberi perhatian kepada subskrip tatasusunan bermula dari 0, menggunakan fungsi count() untuk mendapatkan panjang tatasusunan, menamakan pembolehubah gelung, perbezaan antara tatasusunan indeks dan tatasusunan bersekutu, dan mengelakkan ralat seperti mengubah suai tatasusunan dalam titik gelung. Hanya dengan memberi perhatian kepada butiran ini boleh memastikan ketepatan dan kestabilan program.

Atas ialah kandungan terperinci Bincangkan masalah mudah ralat bagi tatasusunan keluaran gelung 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