Trang chủ WordpressWordpress Development [PHP cơ bản] Các loại vòng lặp (Loop)

[PHP cơ bản] Các loại vòng lặp (Loop)

bởi Thạch Phạm
4 bình luận 16,5K views

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay
Bài này thuộc phần 12 của 15 phần trong serie PHP cho WordPress Developer

Nói đến các ngôn ngữ lập trình thì không thể thiếu một tính năng cực kỳ quan trọng để một ứng dụng có thể chạy hoàn chỉnh, đó là vòng lặp (tiếng Anh là Loop). Và trong khi lập trình với WordPress nói riêng, bạn cũng sử dụng vòng lặp rất nhiều. Ví dụ như bạn có một cái mảng chứa các đối tượng danh sách 10 bài viết, và nếu bạn muốn lấy toàn bộ các đối tượng đó ra ngoài thì sẽ phải dùng vòng lặp.

Vòng lặp nôm na là gì?

Vòng lặp bạn có thể hiểu nó là một tính năng tạo ra một chu kỳ thực hiện một kịch bản nào đó với ngôn ngữ lập trình. Ví dụ thay vì bạn phải tự nhập thủ công từ số 1 đến số 1000 thì có thể sử dụng vòng lặp để nó tự in ra từ 1 đến 1000. Đây là một kỹ thuật cực kỳ quan trọng nên mình muốn bạn tìm hiểu kỹ nhất, không chỉ trong bài này mà còn tham khảo thêm các bài viết khác nói về vòng lặp trên mạng internet.

Các kiểu vòng lặp trong PHP

Trong PHP, hiện tại chúng ta có thể sử dụng 4 loại vòng lặp khác nhau đó là for(), while() và foreach(). Mỗi kiểu vòng lặp sẽ có cách làm việc khác nhau, cụ thể:

  • for – Lặp một hành động với số lần lặp nhất định. Ví dụ bạn muốn in từ số 1 đến 1000 thì sẽ dùng vòng lặp này vì chúng ta có thể đặt điều kiện cho nó dừng lại sau khi lặp 1000 lần.
  • while – Lặp một hành động dựa theo một điều kiện cụ thể mà nó trả về là true. Ví dụ  như trong WordPress, hàm have_posts() sẽ có chức năng kiểm tra trong truy vấn còn đối tượng không, nếu nó return về là true thì lặp, false thì ngừng.
  • do while – Vòng lặp này tương tự giống như while, nhưng bạn có thể đặt một tập hợp các code vào hàm do() rồi nó sẽ lặp lại các code này dựa theo một điều kiện nhất định.
  • foreach – Sử dụng để lặp các khoá và giá trị trong một dữ liệu mảng. Cái này cũng được sử dụng rất nhiều khi làm việc với mảng.

Mình từng học qua PHP nên mình biết nếu bạn nào mới tiếp xúc với lập trình, khái niệm vòng lặp có vẻ rất mơ hồ. Nhưng đừng lo lắng nếu bạn không hiểu, cứ đọc rồi làm theo và bookmark lại trang này. Vài tuần sau có serie Học WordPress nâng cao bạn sẽ hiểu hơn.

Khuyến mãi Black Friday

Sử dụng vòng lặp for

Để sử dụng vòng lặp for, chúng ta sẽ có cấu trúc code như sau:


<?php
for ($x = 0; $x <= 20; $x++) {
    echo "$x <br>";
}
?>

Trong đó:

  • $x = 0 : Dữ liệu cần lặp, do nó chưa có giá trị nên mình gán nó là 0.
  • $x <= 20 : Điều kiện lặp, ví dụ này nghĩa là nó sẽ lặp đến khi nào $x nhỏ hơn hoặc bằng 20.
  • $x++ : Toán tử đếm khi vòng lặp thực hiện, $x++ nó giống như $x + 1, tức là tăng 1 giá trị mỗi chu kỳ lặp.

Và vòng lặp này chúng ta ít sử dụng trong WordPress.

Sử dụng vòng lặp while

Vòng lặp while là được sử dụng rất nhiều trong WordPress, đặc biệt là để lặp truy vấn (query) để hiển thị dữ liệu bài viết ra bên ngoài. Cách sử dụng như sau:


<?php

while ( [điều kiện] ) {
    // code thực thi trong vòng lặp
}

?>

Ví dụ mình muốn lặp cho đến khi $x nhỏ hơn hoặc bằng 20 thì có như sau:


<?php

$x = 1;

while ( $x <= 20) {
    $x++;
    echo "$x <br>";
}
?>

Sử dụng vòng lặp do…while

Cái vòng lặp này thì cũng tương tự while mà thôi, nhưng nó sẽ thực hiện các đoạn code trước rồi mới kiểm tra điều kiện sau.


<?php

$x = 0;

do {
    $x++;
    echo "$x <br>";
} while ( $x <= 20 )
?>

Sử dụng vòng lặp foreach

Vòng lặp này ta sẽ lặp các giá trị và khoá trong mảng, chúng ta không có gắn điều kiện hay số lần lặp gì cả mà nó sẽ lặp khi nào hết mảng thì thôi.


<?php

$web = array(
    ‘PHP’, ‘ASP.NET’, ‘Ruby on Rail’, ‘CSS’, ‘HTML’, ‘Java’
);

foreach( $web as $lang ) {
    echo "$lang <br>";
}
?>

Trong đó, $web as $lang nghĩa là nó sẽ lấy cặp khoá và giá trị trong mảng $web bỏ vào $lang để hiển thị ra.

Hoặc nếu bạn có một mảng bất tuần tự và muốn hiển thị ra cặp khoá và giá trị thì sẽ làm như sau:


<?php

$web = array(
    ‘dynamic’    => ‘PHP’,
    ‘styling’    => ‘CSS’,
    ‘behavior’    => ‘Javascript’
);

foreach ( $web as $key => $value ) {
    echo "$key is $value <br>";
}

?>

Lời kết

Ở trên là những gì bạn cần biết về vòng lặp trong PHP. Dĩ nhiên các ví dụ trên đều rất đơn giản nhưng khi thực tế bạn làm việc thì tự động bạn sẽ hiểu sâu thêm, nếu các bạn đã có nền tảng cơ bản. Do vậy bạn nên nắm vững các kiến thức cơ bản ở trên và sau này khi làm việc sẽ thấy mọi thứ dễ dàng hơn nhiều.

5/5 - (2 bình chọn)
4 bình luận

Có thể bạn quan tâm

Hiện tại blog tạm đóng bình luận vì mình cần tập trung thời gian vào cập nhật bài viết. Bình luận sẽ mở ra cho đến khi mình sẵn sàng.