Vòng lặp trong PHP được sử dụng để thực thi cùng một khối code một số lần nào đó đã xác định. PHP hỗ trợ 4 kiểu vòng lặp sau:
Ở cuối chương, chúng ta sẽ thảo luận về các từ khóa continue và break để điều khiển sự thực thi của các vòng lặp trong PHP.
Lệnh for được sử dụng khi bạn biết trước bao nhiêu lần bạn muốn thực thi một lệnh hoặc một khối lệnh trong PHP.
for (<i>khởi_tạo</i>; <i>điều_kiện</i>; <i>tăng_giảm_giá_trị</i>)
{
<i>phần code để thực thi</i>
}
khởi_tạo được sử dụng để thiết lập giá trị bắt đầu cho biến đếm số lần lặp. Một biến có thể được khai báo ở đây cho mục đích này và tên truyền thống của nó là $i.
Ví dụ sau tạo 5 lần lặp và thay đổi giá trị đã gán của hai biến qua mỗi lần lặp.
<html>
<body>
<?php
$a = 0;
$b = 0;
for( $i=0; $i<5; $i++ )
{
$a += 10;
$b += 5;
}
echo ("Sau vòng lặp, giá trị a=$a và b=$b" );
?>
</body>
</html>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Lệnh while trong PHP sẽ thực thi một khối code nếu và miễn là một điều kiện đã xác định là true.
Nếu điều kiện đã cho là true, thì khối code sẽ được thực thi. Sau khi code được thực thi, thì biểu thức điều kiện sẽ được ước lượng một lần nữa, và vòng lặp tiếp tục thực thi tới khi biểu thức điều kiện là false.
while (<i>điều_kiện</i>)
{
<i>phần code được thực thi nếu điều kiện là true</i>
}
Ví dụ sau giảm giá trị một biến qua mỗi lần lặp và tăng giá trị biến đếm tới khi nó đạt đến 10, thì sự ước lượng là false và vòng lặp kết thúc.
<html>
<body>
<?php
$i = 0;
$num = 30;
while( $i < 10)
{
$num--;
$i++;
}
echo ("Vòng lặp dừng tại giá trị i = $i và num = $num" );
?>
</body>
</html>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Lệnh do…while sẽ thực thi một khối code ít nhất một lần. Sau đó nó sẽ lặp lại vòng lặp miễn là điều kiện là true.
do
{
<i>phần code để thực thi</i>
}
while (<i>điều_kiện</i>);
Ví dụ sau sẽ lượng gia giá trị của i ít nhất một lần, và sau đó nó sẽ tiếp tục tăng biến i miễn là nó có giá trị nhỏ hơn 10.
<html>
<body>
<?php
$i = 0;
do{
$i++;
}
while( $i < 10 );
echo ("Vòng lặp dừng tại giá trị i = $i" );
?>
</body>
</html>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Lệnh vòng lặp foreach được sử dụng để lặp qua một mảng. Với mỗi lần lặp, giá trị cho phần tử mảng hiện tại được gán cho $value và con trỏ mảng được di chuyển tới phần tử kế tiếp và trong lần lặp tiếp theo thì phần tử kế tiếp sẽ được xử lý.
foreach (<i>Mảng </i>as<i> giá_trị</i>)
{
<i>phần code để thực thi</i>
}
Bạn thử ví dụ sau để liệt kê các giá trị của một mảng.
<html>
<body>
<?php
$array = array( 1, 2, 3, 4, 5);
foreach( $array as $value )
{
echo "Giá trị phần tử mảng là $value <br />";
}
?>
</body>
</html>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Từ khóa break trong PHP được sử dụng để kết thúc sự thực thi của một vòng lặp một cách đột ngột.
Lệnh break được đặt bên trong khối lệnh. Nó trao bạn toàn quyền điều khiển bất cứ khi nào bạn muốn thoát khỏi vòng lặp. Sau khi ra khỏi vòng lặp, lệnh ngay sau vòng lặp đó sẽ được thực thi.
Ví dụ sau kiểm tra điều kiện true khi giá trị biến đếm = 3 và vòng lặp kết thúc.
<html>
<body>
<?php
$i = 0;
while( $i < 10)
{
$i++;
if( $i == 3 )<b>break;</b>
}
echo ("Vòng lặp dừng tại giá trị i = $i" );
?>
</body>
</html>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Từ khóa continue trong PHP được sử dụng để dừng vòng lặp hiện tại nhưng không kết thúc vòng lặp đó.
Giống lệnh break, lệnh continue được đặt bên trong khối lệnh đang chứa code mà vòng lặp đó thực thi, được đặt trước bởi một biểu thức kiểm tra điều kiện. Khi gặp lệnh continue, phần còn lại của vòng lặp bị bỏ qua và tiếp tục vòng lặp tiếp theo.
Vòng lặp sau in ra giá trị của một mảng, nếu thỏa mãn điều kiện thì in ra, ngược lại thì bỏ qua và tiếp tục vòng lặp.
<html>
<body>
<?php
$array = array( 1, 2, 3, 4, 5);
foreach( $array as $value )
{
if( $value == 3 )<b>continue;</b>
echo "Gia tri cua phan tu mang la $value <br />";
}
?>
</body>
</html>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả: