Vòng lặp vô hạn trong PHP | Laptrinhcanban.com

Vòng lặp vô hạn trong PHP

Cùng tìm hiểu về vòng lặp vô hạn trong PHP. Bạn sẽ biết vòng lặp vô hạn trong PHP là gì, cách tạo ra vòng lặp vô hạn trong PHP cũng như là cách thoát khỏi vòng lặp vô hạn trong PHP sau bài học này.

Vòng lặp vô hạn trong PHP là gì

Vòng lặp vô hạn trong PHP là một chuỗi các lệnh mà khi được viết ra sẽ kéo dài vô tận, trừ khi có sự can thiệp từ bên ngoài. Vòng lặp vô hạn có thể được thực hiện một cách có chủ đích.

Đại diện tiêu biểu cho vòng lặp vô hạn trong PHP là lệnh while true trong PHP khi không được kèm điều kiện để thoát vòng lặp.

Vòng lặp vô hạn trong PHP

Dưới đây là một ví dụ:

while(true){
echo "hello\n";
}

Nếu chạy lệnh trên, do biểu thức điều kiện của lệnh while luôn là True (đúng) mà không có biểu thức nào để thay đổi nó cả, nên dòng chữ hello sẽ được in ra màn hình mãi mãi.

hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
.....
.....

Cách tạo ra vòng lặp vô hạn trong PHP

Ngoại trừ những trường hợp đặc biệt thì trong phần lớn các trường hợp, chúng ta đã vô tình tạo ra vòng lặp vô hạn trong PHP trong các lỗi logic khi xử lý vòng lặp.

Ví dụ, bạn có thể vô tình tạo ra vòng lặp vô hạn khi sử dụng lệnh while trong PHP. Khác với lệnh for trong PHP chỉ lặp lại đúng số lần bằng chỉ định trong biến đếm thì lệnh while trong PHP sẽ lặp liên tục chừng nào biểu thức điều kiện của nó vẫn còn True (đúng).

Nói cách khác, nếu bạn vô tình chỉ định biểu thức điều kiện trong lệnh while luôn True (đúng), lệnh while lúc này sẽ tạo ra một vòng lặp vô hạn trong PHP.

Dưới đây là một ví dụ bạn đã vô tình tạo ra vòng lặp vô hạn trong PHP với lệnh while:

$num = 0;
while( $num < 4 ){
if ($num == 2){
echo "!!CONTINUE!!\n";
continue;
}
echo $num."\n";
$num ++;
}

//> 0
//> 1
//> !!CONTINUE!!
//> !!CONTINUE!!
//> !!CONTINUE!!
//>> ...........
//>> ...........

Trong câu lệnh trên, mục đích của chúng ta là bỏ qua lượt lặp khi $num = 2, tuy nhiên do giá trị của $num trong trường hợp $num=2 không được thay đổi và luôn bằng 2, dẫn đến biểu thức điều kiện $num <4 luôn đúng và BOOM, bạn đã vô tình tạo ra vòng lặp vô hạn trong PHP.

Bạn cũng có thể vô tính tạo ra vòng lặp vô hạn khi sử dụng lệnh for trong PHP. Dưới đây là một ví dụ:

$myarray = [0] ;

for ($i = 0; $i< count($myarray);$i++){
echo $i."\n";
array_push( $myarray, $i + 1);
}
//> 0
//> 1
//> 2
//> 3
//> 4
//> 5
//> 6
//> 7
//> .................
//> .................

Khi thực hiện câu lệnh trên, bạn muốn thêm phần tử vào trong một danh sách, tuy nhiên việc thêm này không có điểm dừng do biểu thức điều kiện $i < count($myarray) nhằm kiểm tra phần tử tồn tại trong list luôn True. Và BOOM, bạn đã vô tình tạo ra vòng lặp vô hạn trong PHP.

Một vòng lặp vô hạn trong PHP sẽ không có điểm dừng, dẫn đến chương trình không bao giờ được kết thúc và vô tình tiêu tốn rất nhiều bộ nhớ máy tính và CPU.. Các tác hại của nó có thể kể đến như:

  • Trình duyệt bị đóng băng
  • Không thể đóng lại trang đang mở
  • Có trường hợp chúng ta phải khởi động lại máy tính

Vòng lặp vô hạn giống như đại dịch covid sẽ tiêu diệt toàn bộ nhân loại nếu chúng ta không để ý đến nó vậy. Do đó khi sử dụng vòng lặp trong PHP, hãy chú ý để không vô tình tạo ra một vòng lặp vô hạn. Trong trường hợp bạn cần sử dụng tới vòng lặp vô hạn trong PHP, hãy đảm bảo rằng mình đã chuẩn bị một cách để thoát ra khỏi vòng lặp vô hạn đó.

Cách thoát khỏi vòng lặp vô hạn trong PHP

Về cơ bản, cách tốt nhất để thoát khỏi vòng lặp vô hạn trong PHP đó là bạn ĐỪNG tạo ra nó. Trong trường hợp bạn cần sử dụng tới vòng lặp vô hạn trong PHP, hãy đảm bảo rằng mình đã chuẩn bị một cách để thoát ra khỏi vòng lặp vô hạn đó bằng cách thêm biểu thức điều kiện, dùng lệnh if hoặc lệnh break bên trong vòng lặp.

Tuy nhiên, giả sử nếu bạn lỡ chạy một vòng lặp vô hạn trong PHP thì cũng đừng lo lắng. Chúng ta có thể chấm dứt chương trình đó và thoát khỏi vòng lặp vô hạn trong PHP bằng cách sử dụng các tổ hợp phím tùy vào hệ điều hành như sau:

Windows Ctrl + C
Thoát khỏi vòng lặp vô hạn trong PHP - Windows

Mac Control + C
Thoát khỏi vòng lặp vô hạn trong PHP - Mac

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về vòng lặp vô hạn trong PHP, cách tạo ra cũng như là cách thoát khỏi vòng lặp vô hạn trong PHP rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về PHP trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.