Vấn đề dấu ngoặc nhọn trong vòng lặp ở PHP
Mặc dù trong vòng lặp có thể bỏ qua dấu ngoặc nhọn, tôi rất không khuyến khích làm như vậy, vì code như thế thường dẫn đến lỗi.
Hãy xem xét ví dụ. Giả sử chúng ta có code sau:
<?php
for ($i = 0; $i <= 9; $i++)
echo $i; // sẽ in ra các số từ 0 đến 9
?>
Tôi sẽ thêm một sửa chữa nhỏ vào đoạn code đã nêu ở trên (hãy tìm xem là gì) - và nó sẽ ngừng hoạt động:
<?php
for ($i = 0; $i <= 9; $i++);
echo $i; // sẽ đưa ra 10
?>
Vậy, tôi đã sửa cái gì?
Vấn đề phát sinh do tôi đã đặt
dấu chấm phẩy sau dấu ) của
vòng lặp. Trong trường hợp này, sẽ tạo ra cái gọi là
vòng lặp không có thân: nó sẽ chỉ chạy
bên trong, và dòng tiếp theo sẽ không
liên quan đến nó nữa. Vì vậy, để tránh vấn đề,
tôi luôn khuyên nên đặt dấu ngoặc nhọn
trong vòng lặp.
Hãy cho biết, kết quả thực hiện của đoạn code sau sẽ là gì:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem);
echo $elem;
?>