PHP da tsikllardagi jingalak qavslar muammosi
Garchi tsikllarda figurali qavslarni tashlab ketish mumkin bo‘lsa ham, men buni tavsiya qilmayman, chunki bunday kod ko‘pincha xatolarga olib keladi.
Keling, misol orqali ko‘rib chiqamiz. Faraz qilaylik, bizda quyidagi kod bor:
<?php
for ($i = 0; $i <= 9; $i++)
echo $i; // 0 dan 9 gacha raqamlarni chiqaradi
?>
Men yuqoridagi kodga kichik o‘zgartirish kiritaman (uni toping) – va u ishlamay qoladi.:
<?php
for ($i = 0; $i <= 9; $i++);
echo $i; // 10 chiqaradi
?>
Xo‘sh, men nimani o‘zgartirdim?
Muammo shundaki, men siklning yopuvchi qavsidan ) keyin nuqta-vergul (;) qo‘ydim. Bunday holatda shunday deb ataladigan "tanasiz sikl" hosil bo‘ladi: u shunchaki ichida aylanadi, keyingi qator esa siklga tegishli bo‘lmay qoladi. Shuning uchun xatolarning oldini olish uchun men har doim sikllarda figurali qavslarni ishlatishni tavsiya qilaman.
№1
Quyidagi kodni ishga tushirsa natijasi qanday bo'lishini ayting:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem);
echo $elem;
?>