PHP if – Giới thiệu về câu lệnh if trong PHP

PHP if - Giới thiệu về câu lệnh if trong PHP

Tóm tắt: trong hướng dẫn này, bạn sẽ tìm hiểu về câu lệnh if trong PHP và cách sử dụng nó để thực thi một khối mã theo điều kiện.

Giới thiệu về câu lệnh if trong PHP

Câu lệnh if cho phép bạn thực thi một câu lệnh nếu một biểu thức đánh giá là true. Dưới đây là cú pháp của câu lệnh if:

<?php

if ( biểu_thức ) 
    câu_lệnh;

Trong cú pháp này, PHP đánh giá biểu thức trước. Nếu biểu thức đánh giá là true, PHP thực thi câu lệnh. Trong trường hợp biểu thức đánh giá là false, PHP bỏ qua câu lệnh.

Sơ đồ dưới đây mô tả cách hoạt động của câu lệnh if:

PHP if flowchart

Ví dụ sau sử dụng câu lệnh if để hiển thị một thông báo nếu biến $is_admin được đặt thành true:

<?php

$is_admin = true;
if ($is_admin)
    echo 'Chào mừng, admin!';

$is_admintrue, mã script sẽ xuất thông báo sau đây:

Chào mừng, admin!

Dấu ngoặc nhọn

Nếu bạn muốn thực thi nhiều câu lệnh trong khối if, bạn có thể sử dụng dấu ngoặc nhọn để nhóm nhiều câu lệnh như sau:

<?php

if ( biểu_thức ) {
   câu_lệnh1;
   câu_lệnh2;
   // thêm câu lệnh
}

Ví dụ sau sử dụng câu lệnh if để thực thi nhiều câu lệnh:

<?php

$can_edit = false;
$is_admin = true;

if ( $is_admin ) {
   echo 'Chào mừng, admin!';
   $can_edit = true;
}

Trong ví dụ này, câu lệnh if hiển thị một thông báo và thiết lập biến $can_edit thành true nếu biến $is_admintrue.

Đây là một thói quen tốt luôn sử dụng dấu ngoặc nhọn với câu lệnh if ngay cả khi chỉ có một câu lệnh để thực thi như sau:

<?php

if ( biểu_thức ) {
   câu_lệnh;
}

Ngoài ra, bạn có thể sử dụng khoảng trắng giữa biểu thức và dấu ngoặc nhọn để làm cho mã code dễ đọc hơn.

Lồng câu lệnh if

Đó là có thể lồng một câu lệnh if bên trong một câu lệnh if khác như sau:

<?php

if ( biểu_thức1 ) {
    // làm một cái gì đó
    if( biểu_thức2 ) {
        // làm những thứ khác
    }
}

Ví dụ sau cho thấy cách lồng một câu lệnh if trong một câu lệnh if khác:

<?php

$is_admin = true;
$can_approve = true;

if ($is_admin) {
	echo 'Chào mừng, admin!';
	if ($can_approve) {
		echo 'Vui lòng phê duyệt các mục đang chờ duyệt';
	}
}

Nhúng câu lệnh if vào HTML

Để nhúng một câu lệnh if vào một tài liệu HTML, bạn có thể sử dụng cú pháp trên. Tuy nhiên, PHP cung cấp một cú pháp tốt hơn cho phép bạn kết hợp câu lệnh if với HTML một cách dễ nhìn:

<?php if ( biểu_thức) : ?>
<!-- mã HTML ở đây -->
<?php endif; ?>

Ví dụ sau sử dụng câu lệnh if để hiển thị liên kết chỉnh sửa nếu $is_admintrue:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>PHP if Statement Demo</title>
</head>
<body>
  <?php $is_admin = true; ?>
  <?php if ( $is_admin ) : ?>
  <a href="#">Chỉnh sửa</a>
  <?php endif; ?>
  <a href="#">Xem</a> 
</body>
</html>

$is_admintrue, mã script sẽ hiển thị liên kết chỉnh sửa. Nếu bạn thay đổi giá trị của $is_admin thành false, bạn sẽ không thấy liên kết chỉnh sửa trong kết quả.

Một lỗi phổ biến với câu lệnh if trong PHP

Một lỗi phổ biến mà bạn có thể gặp là sử dụng sai toán tử trong câu lệnh if. Ví dụ:

<?php

$checked = 'on';
if( $checked = 'off' ) {
   echo 'Hộp kiểm chưa được chọn';
}

Mã script này hiển thị một thông báo nếu $checked là 'off'. Tuy nhiên, biểu thức trong câu lệnh if là một phép gán, không phải là một so sánh:

$checked = 'off'

Biểu thức này gán chuỗi chữ là 'off' cho biến $checked và trả về biến đó. Nó không so sánh giá trị của biến $checked với giá trị 'off'. Do đó, biểu thức luôn đánh giá là true, điều này không chính xác.

Để tránh lỗi này, bạn có thể đặt giá trị trước sau toán tử so sánh và biến sau toán tử so sánh như sau:

<?php

$checked = 'on';
if('off' == $checked ) {
   echo 'Hộp kiểm chưa được chọn';
}

Nếu bạn tình cờ sử dụng toán tử gán (=), PHP sẽ sinh lỗi cú pháp thay vì thực thi mã:

<?php

$checked = 'on';
if ('off' = $checked) {
	echo 'Hộp kiểm chưa được chọn';
}

Lỗi:

Parse error: syntax error, unexpected '=' ...

Tóm lại

  • Câu lệnh if thực thi một câu lệnh nếu một điều kiện đánh giá là true.
  • Luôn sử dụng dấu ngoặc nhọn ngay cả khi chỉ có một câu lệnh để thực thi trong câu lệnh if. Nó làm cho mã code rõ ràng hơn.
  • Hãy sử dụng mẫu if ( value == $variable_name ) {} để tránh những sai lầm có thể xảy ra.

Thành Nguyễn

Tôi là Thành, nên tôi đặt tên blog là Thành Nè, Thánh Né... là một coder cùi bắp (Code quèn). Chẳng giỏi viết lách, chỉ giỏi chém gió và có sở thích chia sẻ những kiến thức tôi đã từng...