Các vòng lặp while là một dạng lặp đơn giản nhất trong PHP. Chúng giống hệt trong C. Dạng cơ bản của câu lệnh while là:
while (expr) statement
Ý nghĩa của câu lệnh while thật đơn giản. Nó nói cho PHP thực hiện các câu lệnh lặp đi lặp lại lồng nhau, khi biểu thức while nhận giá trị TRUE. Giá trị của của biểu thức được kiểm tra mỗi lần tại đầu vòng lặp, bởi vậy nếu giá trị này thay đổi trong quá trình thực hiện các câu lệnh, quá trình thực hiện sẽ không dừng cho đến khi kết thúc sự lặp lại ( mỗi lần PHP chạy các câu lệnh trong vòng lặp là một sự lặp lại). Thỉnh thoảng nếu biểu thức while nhận giá trị FALSE từ khi bắt đầu, các câu lệnh bên trong sẽ không được thực hiện.
Giống như câu lệnh if, ta có thể nhóm nhiểu câu lệnh trong cùng một vòng lặp while bằng cách bao nhóm các câu lệnh trong các dấu móc, hoặc bằng cú pháp lựa chọn:
while (expr): statement ... endwhile;
Các ví dụ sau là y hệt nhau, và đều in các số từ 1 đến 10:
/* example 1 */ $i = 1;
while ($i <= 10) {
print $i++; /* the printed value would be $i before the increment (post-increment) */ } /* example 2 */ $i = 1; while ($i <= 10): print $i; $i++; endwhile; 6_do .. while
Các vòng lặp do .. while cũng rất giống với các vòng lặp while, trừ việc kiểm tra điều kiện đúng tại lúc kết thúc mỗi vòng lặp thay vì ngay ban đầu. Sự khác biệt chính với các vòng lặp while thông thường là sự lặp lại đầu tiên của một vòng lặp do .. while được bảo đảm thực hiện (điều kiện đúng chỉ được chỉ ra tại cuối vòng lặp), trong khi nó có thể sẽ không được thực hiện trong vòng lặp while nếu ngay từ đầu điều kiện kiểm tra là FALSE.
print $i; } while ($i>0);
Vòng lặp trên sẽ chỉ chạy một lần chính xác, sau lần lặp đầu tiên, khi biểu thức điều kịên được kiểm tra, nó xác định giá trị FALSE ($i không lớn hơn 0) và sự thực hiện vòng lặp được kết thúc. Những người dùng C cao cấp có thể quen với một cách sử dụng khác của vòng lặp do .. while, để cho phép dừng sự thực hịên tại giữa khối mã lệnh, bằng cách gói gọn chúng với do .. while(0), và sử dụng cú pháp break. Đoạn mã dưới đây mô tả điều này:
do {
if ($i < 5) {
print "i is not big enough"; break; } $i *= $factor; if ($i < $minimum_limit) { break; }
print "i is ok"; ...process i... } while(0);
Đừng lo lắng nếu ta không hiểu , ta có thể viết mã các script và cả các script mạnh mẽ mà không dùng đặc điểm này.