Vòng lặp và kiểm soát luồng chương trình trong PHP
- 25-02-2023
- Toanngo92
- 0 Comments
Mục lục
Vòng lặp trong PHP
Tương tự như bất kỳ ngôn ngữ lập trình nào khác, các vòng lặp trong PHP được sử dụng để lặp lại cùng một khối mã cho đến khi một điều kiện cụ thể được đáp ứng. PHP hỗ trợ 4 kiểu vòng lặp: while, do..while, for và foreach.
Vòng lặp While
Trong vòng lặp while, điều kiện được kiểm tra trước và nếu điều kiện được thỏa mãn thì khối mã sẽ được thực thi cho đến khi điều kiện trở thành sai.
Cú pháp:
while (condition is true) {
// todo
}
Ví dụ:
<?php
$x = 5;
while ($x > 0) {
echo "x is equal to " . $x . "<br>";
$x--;
}
// output
// 5
// 4
// 3
// 2
// 1
?>
Vòng lặp do … while
vòng lặp do…while chạy khối mã bên trong do và thực thi trước khi kiểm tra điều kiện trong lần đầu tiên. Nếu điều kiện là đúng, quá trình được lặp lại cho đến khi điều kiện trở thành sai.
Cú pháp:
do {
// todo
} while (condition is true);
Ví dụ:
<?php
$i = 0;
do {
// instructions to be executed
echo $i;
// increment counter
$i++;
} while ($i < 5);
// output
// 0
// 1
// 2
// 3
// 4
Có một sự khác biệt chính giữa màu trắng và do-while. Vòng lặp do-while thực hiện lệnh trước rồi mới kiểm tra điều kiện, ngược lại, vòng lặp while kiểm tra điều kiện trước rồi mới thực hiện lệnh.
Vòng lặp for
Vòng lặp for trong PHP được sử dụng để lặp lại một khối mã với số lần cố định. Nói cách khác, khi người dùng đã biết tần suất chạy mã (số lần lặp), thì vòng lặp cáo có thể được sử dụng.
for (init counter; test counter; increment counter) {
// todo
}
Các tham số sau được sử dụng trong vòng lặp for:
init counter: khởi tạo giá trị bộ đếm của vòng lặp.
test_count: được sử dụng để đánh giá số lần lặp cho mỗi vòng lặp. Vòng lặp tiếp tục nếu đánh giá là TRUE. Vòng lặp kết thúc nếu nó đánh giá là FALSE.
increment counter: được sử dụng để tăng giá trị bộ đếm của vòng lặp.
Ví dụ:
<?php
for ($y = 0; $y <= 5; $y++) {
echo 'Current number is '.$y.'<br>';
}
// output:
// Current number is 0
// Current number is 1
// Current number is 2
// Current number is 3
// Current number is 4
?>
Vòng lặp foreach
Vòng lặp foreach rất hữu ích để lặp qua mảng các phần tử. Nó chỉ hoạt động với mảng và vòng lặp trên tất cả các cặp khóa/giá trị trong một mảng.
Cú pháp:
foreach ($arvay as $key => $value){
// todo if need key
}
// hoặc
foreach ($arvay as $value){
// todo
}
Đối với mỗi lần lặp lại, giá trị của phần tử mảng hiện tại được gán cho biến $value và con trỏ mảng được di chuyển một cho đến khi nó đến phần tử mảng cuối cùng.
Ví dụ:
<?php
$names = array("John","Alice","Bob");
foreach($names as $name){
echo $name, "<br />";
}
// output:
// John
// Alice
// Bob
Ví dụ 2 sử dụng mảng với khóa không phải là index số (sẽ tìm hiểu khái niệm về mảng này sau):
$flower = array("John"=>"10", "Doe"=>"20");
foreach ($flower as $key => $value) {
echo "$key = $value<br>";
}
// output:
// John = 10
// Doe = 20
Câu lệnh Break
Câu lệnh break được sử dụng để nhảy ra khỏi cấu trúc vòng lặp, ngoài tình huống dụng trong cấu trúc switch case. Nó chủ yếu được sử dụng trong chương trình thoát khỏi vòng lặp hoặc thoát khỏi khối mã. Chương trình thoát khỏi một khối hoặc vòng lặp cụ thể khi gặp ngắt và thực thi mã sau vòng lặp hoặc khối đó.
Ví dụ:
<?php
$fruits = array('apple', 'banana', 'orange');
foreach($fruits as $fruit) {
echo $fruit."\n";
if ($fruit == "banana") {
break;
}
}
// This will output:
// apple
// banana
Câu lệnh continue
Khi một điều kiện cụ thể được đáp ứng, câu lệnh continue ngắt một lần lặp trong vòng lặp và tiếp tục với lần lặp tiếp theo trong vòng lặp. Nếu có một hoặc nhiều câu lệnh trong vòng lặp sau khi tiếp tục, tất cả chúng sẽ bị bỏ qua vì điều khiển sẽ bỏ qua chúng và trực tiếp chuyển sang lần lặp tiếp theo.
$words = array('Hello', 'World', '!');
foreach($words as $word){
if($word == 'World') continue;
echo $word;
}
// output:
// Hello!