Trong bài này, chúng ta sẽ tìm hiểu về vòng lặp while và do…while trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
1. Vòng lặp while trong PHP
Vòng lặp while
trong PHP được sử dụng để lặp lại một khối lệnh nếu thỏa điều kiện nào đó. Cú pháp:
while (<điều kiện lặp>) {
//code to be executed;
}
với <điều kiện lặp>
thường là biểu thức với các toán tử quan hệ, kết quả trả về là true hoặc false.
Nguyên lý hoạt động của vòng lặp while như sau:
Kiểm tra <điều kiện lặp>, nếu <điều kiện lặp> đúng (true) thì dòng lệnh trong while sẽ được thực thi.
Quá trình kiểm tra <điều kiện lặp> và thực thi dòng lệnh trong while sẽ chấm dứt cho đến khi <điều kiện lặp> sai (false). Tức là, nếu bất cứ khi nào <điều kiện lặp> sai (false) thì vòng lặp while sẽ chấm dứt.
Ví dụ hiển thị số 1 đến 5 trong PHP
<?php
$x = 1;
while($x <= 5) {
echo $x." ";
$x++;
}
?>
Kết quả
1 2 3 4 5
2. Vòng lặp do…while trong PHP
Vòng lặp do while
cũng giống vòng lặp while
nhưng khối lệnh trong vòng lặp thực hiện trước rồi mới kiểm tra điều kiện lặp sau. Cú pháp:
do {
//code to be executed;
}while (<điều kiện lặp>);
với <điều kiện lặp> thường là biểu thức với các toán tử quan hệ, kết quả trả về là true (0) hoặc false (0).
Nguyên lý hoạt động của vòng lặp do while như sau:
Thực thi dòng lệnh trong do while trước. Sau đó, kiểm tra <điều kiện lặp>, nếu <điều kiện lặp> đúng (true) thì thực thi dòng lệnh trong do while lần nữa.
Quá trình kiểm tra <điều kiện lặp> và thực thi dòng lệnh trong do while sẽ chấm dứt cho đến khi <điều kiện lặp> sai (false). Tức là, nếu bất cứ khi nào <điều kiện lặp> sai (false) thì vòng lặp do while sẽ chấm dứt.
<?php
$i = 1;
$n = 5;
// do...while loop from 1 to 5
do {
echo $i." ";
$i++;
} while($i <= $n);
?>
Kết quả
1 2 3 4 5
Bên dưới là một ví dụ khác nữa của vòng lặp do while:
<?php
$x = 6;
do {
echo $x." ";
$x++;
} while ($x <= 5);
?>
Kết quả
6
Trong ví dụ trên, vòng lặp do while sẽ chạy một lần và hiện thị ra giá trị của $x. Sau đó, kiểm tra điều kiện $x <= 5 thì không thỏa nên dừng vòng lặp.
3. Vòng lặp while vô hạn trong PHP
Nếu <điều kiện lặp>
của vòng lặp while
và do while
luôn luôn là true thì đó là vòng lặp vô hạn.
<?php
// infinite while loop
while(true){
// body of loop
}
// infinite do...while loop
$count = 1;
do {
// body of loop
} while($count == 1)
?>
Lưu ý: Cần tránh trường hợp <điều kiện lặp> luôn luôn là true sẽ dẫn đến vòng lặp vô hạn. Cũng có những trường hợp cần vòng lặp vô hạn nhưng không nhiều trường hợp như vậy. Lúc này, cần cân nhắc kỹ trước khi sử dụng vòng lặp vô hạn.