Hướng dẫn dùng exit 0 trong PHP

Bài trước chúng ta đã tìm hiểu vòng lặp cuối cùng đó là vòng lặp foreach trong php, vậy thì trong bài này chúng ta sẽ tìm hiểu một số câu lệnh dừng chương trình vòng lặp và lệnh nhảy tới một vị trí nào đó trong file PHP.

Hướng dẫn dùng exit 0 trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nội dung chúng ta gồm ó các phần như sau:

  • Câu lệnh Break
  • Câu lệnh Continue
  • Câu lệnh Goto
  • Câu lệnh Die & Exit

1. Câu lệnh break

Lệnh break thường được dùng để thoát khỏi vòng lặp cho dù vòng lặp vẫn chưa kết thúc.

Ví dụ:

Bài viết này được đăng tại [free tuts .net]

for ($i = 1; $i <= 100; $i++)
{
    echo $i . ' ';
    if ($i == 20)
    {
        break;
    }
}

Trong ví dụ này thì vòng lặp được lặp từ 1 cho tới 100, nhưng nó không chạy hết 100 lần bởi vì khi nó chạy tới lần thứ 20 (tức là biến $i = 20) thì câu lệnh kiểm tra if đúng nên lệnh break bên trong câu if được thực hiện và sẽ dừng vòng lặp.

Không chỉ ở vòng lặp for mà các vòng lặp như while và do while, vòng lặp foreach ta đều có thể dùng lệnh break để kết thúc.

2. Câu lệnh continue

Dịch ra tiếng anh cũng đủ hiểu phần nào câu lệnh này, lệnh continue sẽ bỏ qua những đoạn code bên dưới nó và nhảy qua vòng lặp kế tiếp (không thoát hẳn vòng lặp như lệnh break).

Ví dụ:

for ($i = 1; $i <= 10; $i++)
{
    if ($i == 5)
    {
        continue;
    }
    echo $i . ' ';
}

Bài này vòng lặp for lặp từ 1 tới 10 và in ra các số đó. nhưng lạ thay là kết quả thiếu mất số 5 tại vì khi $i = 5 (vòng lặp thứ 5) thì câu lệnh continue đã nhảy chương trình qua vòng lặp mới nên lệnh echo $i không thực hiện được.

Tương tự ta có thể sử dụng lệnh này cho tất cả các vòng lặp for, while, do while và foreach.

3. Câu lệnh goto

Lệnh goto dùng để nhảy đến một dòng code nào đó.

Ví dụ:

$a = 12;
$b = 13;
$c = $a + $b;
 
echo $a;
 
goto label_end;
 
echo $b;
 
label_end;

Trong ví dụ này nếu bình thường thì nó sẽ xuất ra màn hình cả $a và $b nhưng bài này nó chỉ xuất ra màn hình mỗi $a vì dòng goto label_end sẽ nhảy chương trình đến cái nhãn label_end nên dòng echo $b; không được thực hiện. label_end được gọi là nhãn (có thể đặt tên bất kỳ).

Người ta khuyên rằng không nên sử dụng lệnh goto bởi vì nó khó nhìn, lộn xộn khó bảo trì nâng cấp.

4. Lênh die và exit

Với 2 lệnh break và continue chỉ ảnh hương trong vòng lặp thì lệnh die và exit lại ảnh hưởng tới cả chương trình, nếu bạn dùng 2 lệnh này thì chương trình sẽ dừng ngay lập tức và những đoạn code bên dưới die và exit sẽ không được thực hiện.

Ví dụ:

echo '123';
 
die(); // hoặc exit();
echo '456';

Trong ví dụ này kết quả xuất ra màn hình là 123, vởi vì dòng code echo ’456′ không được thực hiện.

5. Lời kết

Thực tế thì ta hay sử dụng lệnh break, continue, die và exit thôi chứ lệnh goto rất ít khi dùng vì nó làm cho chương trình trở lên rối, khó nâng cấp và bảo trì. Bài tiếp theo ta sẽ tìm hiểu hàm trong php.

  • Trang chủ
  • Hướng dẫn học
  • Học PHP
  • PHP - function thường dùng

PHP - function thường dùng

  • break - Dùng để kết thúc vòng lặp (for, foreach, while, do-while) hoặc câu lệnh switch
  • continue - Kiểm tra biến có giá trị hay không
  • isset() - Kiểm tra biến có giá trị hay không
  • empty() - Kiểm tra biến có giá trị rỗng hay không
  • exit() - Dùng để thoát ra khỏi chương trình
  • die() - Dùng để thoát ra khỏi chương trình

break

  • break dùng để kết thúc quá trình thực thi của vòng lặp (for, foreach, while, do while) hoặc câu lệnh switch.
  • Có thể sử dụng tham số integer cho break để xác định kết thúc đối với vòng lặp hay câu lệnh switch lồng nhau:

    • break 1; tương tự như break; sẽ kết thúc vòng lặp hoặc câu lệnh switch hiện tại.
    • break 2; sẽ kết thúc vòng lặp hoặc câu lệnh switch hiện tại và cũng kết thúc vòng lặp hay câu lệnh bao ngoài.
    • Tương tự break n; sẽ kết thúc nhiều vòng lập hay câu lệnh switch lồng n lần.

break

<?php
for ($i = 0; $i < 5; $i++) {
    ++$i;
    echo $i;
    break;
}
?>

Sau khi cộng $i cho 1 thì kết thúc vòng lặp.

break 2

<?php
$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "i có giá trị 5"."<br>";
        break; // Chỉ thoát khỏi switch
    case 10:
        echo "i có giá trị 10"."<br>";
        break 2; // Thoát khỏi switch và while.
    default:
        break;
    }
}
?>

i có giá trị 5
i có giá trị 10

Giá trị break 2; đã thoát khỏi câu lệnh switch, đồng thời thoát luôn cả vòng lặp while, nếu không có break 2; này thì while sẽ lặp vô hạn.

continue

  • continue được sử dụng trong vòng lặp để bỏ qua một phần của vòng lặp hiện tại, dựa vào điều kiện mà có tiếp tục vòng lặp tiếp theo hay không.

continue

<?php
for ($i = 0; $i < 5; ++$i) {
    if ($i == 2) {
        continue;
    }
    print "$i"."<br>";
}
?>

Tại điều kiện $i == 2 việc print được bỏ qua, sau đó lại tiếp tục với giá trị $i == 3.

isset()

  • isset() dùng để kiểm tra biến có giá trị hay không, nếu có thì trả về giá trị true, ngược lại sẽ trả về giá trị false.
  • Nói cách khác, isset() dùng để kiểm tra giá trị là không null
  • Hàm isset() thường được dùng nhiều trong việc kiểm tra phương thức GET và POST có tồn tại hay không.

isset() - không tồn tại giá trị

<?php
$a;
var_dump(isset($a));
?>

Do biến $a chưa có giá trị, nên hàm kiểm tra isset() trả về giá trị false.

isset() - tồn tại giá trị

<?php
$a = "";
var_dump(isset($a));
?>

Do biến $a có giá trị (giá trị rỗng), nên hàm kiểm tra isset() trả về giá trị true.

isset() - điều kiện rẽ nhánh

<?php
$a = "Học Web Chuẩn";
if(isset($a)) {
    echo $a;
} else {
    echo "a chưa có giá trị";
}
?>

empty()

  • empty() dùng để kiểm tra biến có giá trị rỗng hay không, nếu có thì trả về giá trị true, ngược lại sẽ trả về giá trị false.
  • Các trường hợp sau được xem là giá trị rỗng:

    • Giá trị chuỗi: "", hoặc "0"
    • Giá trị integer: 0
    • Giá trị float: 0.0
    • Giá trị NULL
    • Giá trị Boolean: FALSE
    • Giá trị mảng: array()
    • Biến chưa có giá trị: $var;

Ví dụ:

<?php
$a;
var_dump(empty($a));
?>

Khác với hàm isset() ở trên, hàm empty() trong trường hợp này sẽ cho giá trị true.

empty() - giá trị khác rỗng

<?php
$a = "1";
var_dump(empty($a));
?>

empty() - điều kiện rẽ nhánh

<?php
$a = "Học Web Chuẩn";
if(empty($a)) {
    echo $a;
} else {
    echo "a có giá trị khác rỗng";
}
?>

exit()

  • exit() dùng để thoát ra khỏi chương trình.
  • Khi dùng exit() thì những dòng code bên dưới sẽ không được thực hiện.
  • Các cách thể hiện exit tương tự nhau:

    • exit
    • exit()
    • exit(0)
    • exit(string): string sẽ được hiển thị trước khi thoát khỏi chương trình

exit()

<?php
echo "Trước khi có exit()";
exit();
echo "Sau khi có exit()";
?>

Ta thấy đoạn echo thứ 2 đã không được thực hiện.

exit(string)

<?php
echo "Trước khi có exit()";
exit("-Thoát rồi");
echo "Sau khi có exit()";
?>

Trước khi có exit()-Thoát rồi

die()

  • die() sử dụng giống nhau với exit(), cũng dùng để thoát khỏi chương trình.
  • Khi dùng die() thì những dòng code bên dưới sẽ không được thực hiện.
  • Các cách thể hiện die tương tự nhau:

    • die
    • die()
    • die(0)
    • die(string): string sẽ được hiển thị trước khi thoát khỏi chương trình

Ví dụ:

<?php
echo "Trước khi có die()";
die();
echo "Sau khi có die()";
?>

Ta thấy đoạn echo thứ 2 đã không được thực hiện.

die(string)

<?php
echo "Trước khi có die()";
die("-Thoát rồi");
echo "Sau khi có die()";
?>

Trước khi có die()-Thoát rồi