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

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

Summary: trong hướng dẫn này, bạn sẽ tìm hiểu về câu lệnh if elseif của PHP để thực thi các khối mã dựa trên nhiều biểu thức boolean.

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

Câu lệnh if đánh giá một biểu thức và thực thi một khối mã nếu biểu thức đó đúng:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
if (biểu thức) {
khối mã;
}
<?php if (biểu thức) { khối mã; }
<?php

if (biểu thức) {
	khối mã;
}

Lệnh if có thể có một hoặc nhiều mệnh đề elseif tuỳ chọn. Câu lệnh này là sự kết hợp của ifelse:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
if (biểu thức1) {
khối mã;
} elseif (biểu thức2) {
khối mã;
} elseif (biểu thức3) {
khối mã;
}
<?php if (biểu thức1) { khối mã; } elseif (biểu thức2) { khối mã; } elseif (biểu thức3) { khối mã; }
<?php

if (biểu thức1) {
	khối mã;
} elseif (biểu thức2) {
	khối mã;
} elseif (biểu thức3) {
	khối mã;
}

PHP đánh giá biểu thức1 và thực thi khối mã trong mệnh đề if nếu biểu thức1đúng.

Nếu biểu thức1sai, PHP sẽ đánh giá biểu thức2 trong mệnh đề elseif. Tiếp theo nếu kết quả là đúng, thì PHP thực thi câu lệnh trong khối elseif đó. Ngược lại, PHP sẽ đánh giá biểu thức3.

Nếu biểu thức3đúng, PHP sẽ thực thi khối mã theo mệnh đề elseif. Ngược lại, PHP sẽ bỏ qua nó.

Chú ý rằng khi một câu lệnh if có nhiều mệnh đề elseif, mệnh đề này sẽ được thực thi chỉ khi biểu thức trong mệnh đề if hoặc mệnh đề elseif trước đó đánh giá là sai.

Biểu đồ dưới đây minh họa cách câu lệnh if elseif hoạt động:

Ví dụ sau sử dụng câu lệnh if elseif để hiển thị xem biến $x có lớn hơn $y không:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$x = 10;
$y = 20;
if ($x > $y) {
$message = 'x lớn hơn y';
} elseif ($x < $y) {
$message = 'x nhỏ hơn y';
} else {
$message = 'x bằng y';
}
echo $message;
<?php $x = 10; $y = 20; if ($x > $y) { $message = 'x lớn hơn y'; } elseif ($x < $y) { $message = 'x nhỏ hơn y'; } else { $message = 'x bằng y'; } echo $message;
<?php

$x = 10;
$y = 20;

if ($x > $y) {
	$message = 'x lớn hơn y';
} elseif ($x < $y) {
	$message = 'x nhỏ hơn y';
} else {
	$message = 'x bằng y';
}

echo $message;

Output:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
x nhỏ hơn y
x nhỏ hơn y
x nhỏ hơn y

Script sẽ hiển thị thông báo x nhỏ hơn y như dự kiến.

Cú pháp thay thế PHP if elseif

PHP cũng hỗ trợ một cú pháp thay thế cho câu lệnh elseif mà không sử dụng dấu ngoặc nhọn như sau:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
if (biểu thức):
khối mã;
elseif (biểu thức2):
khối mã;
elseif (biểu thức3):
khối mã;
endif;
<?php if (biểu thức): khối mã; elseif (biểu thức2): khối mã; elseif (biểu thức3): khối mã; endif;
<?php
if (biểu thức):
	khối mã;
elseif (biểu thức2):
	khối mã;
elseif (biểu thức3):
	khối mã;
endif;

Trong cú pháp này:

  • Sử dụng dấu chấm phẩy (:) sau mỗi điều kiện theo sau từ khoá if hoặc elseif.
  • Sử dụng từ khoá endif thay vì dấu ngoặc nhọn (}) ở cuối câu lệnh if.

Ví dụ dưới đây sử dụng cú pháp thay thế elseif:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$x = 10;
$y = 20;
if ($x > $y) :
$message = 'x lớn hơn y';
elseif ($x < $y):
$message = 'x nhỏ hơn y';
else:
$message = 'x bằng y';
endif;
echo $message;
<?php $x = 10; $y = 20; if ($x > $y) : $message = 'x lớn hơn y'; elseif ($x < $y): $message = 'x nhỏ hơn y'; else: $message = 'x bằng y'; endif; echo $message;
<?php

$x = 10;
$y = 20;

if ($x > $y) :
	$message = 'x lớn hơn y';
elseif ($x < $y):
	$message = 'x nhỏ hơn y';
else:
	$message = 'x bằng y';
endif;

echo $message;

Cú pháp thay thế này phù hợp để sử dụng với HTML.

PHP elseif vs. else if

PHP cho phép bạn viết else if (hai từ) có kết quả tương tự như elseif (một từ):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<<?php
if (biểu thức) {
khối mã;
} else if (biểu thức2) {
khối mã2;
}
<<?php if (biểu thức) { khối mã; } else if (biểu thức2) { khối mã2; }
<<?php

if (biểu thức) {
	khối mã;
} else if (biểu thức2) {
	khối mã2;
}

Trong trường hợp này, else if tương đương với cấu trúc lồng nhau if…else sau đây:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
if (biểu thức) {
khối mã;
} else {
if (biểu thức2) {
khối mã2;
}
}
if (biểu thức) { khối mã; } else { if (biểu thức2) { khối mã2; } }
if (biểu thức) {
	khối mã;
} else {
	if (biểu thức2) {
		khối mã2;
	}
}

Nếu bạn sử dụng cú pháp thay thế, bạn cần sử dụng câu lệnh if...elseif thay vì câu lệnh if...else if. Nếu không, bạn sẽ nhận được một lỗi.

Ví dụ dưới đây không hoạt động và gây ra lỗi:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$x = 10;
$y = 20;
if ($x > $y) :
echo 'x lớn hơn y';
else if ($x < $y):
echo 'x bằng y';
else:
echo 'x nhỏ hơn y';
endif;
<?php $x = 10; $y = 20; if ($x > $y) : echo 'x lớn hơn y'; else if ($x < $y): echo 'x bằng y'; else: echo 'x nhỏ hơn y'; endif;
<?php

$x = 10;
$y = 20;

if ($x > $y) :
	echo 'x lớn hơn y';
else if ($x < $y):
	echo 'x bằng y';
else:
	echo 'x nhỏ hơn y';
endif;

Tóm tắt

  • Sử dụng câu lệnh if...elseif để đánh giá nhiều biểu thức và thực thi khối mã theo điều kiện.
  • Chỉ mệnh đề if...elseif hỗ trợ cú pháp thay thế, mệnh đề if...else if không hỗ trợ.
  • Hãy sử dụng elseif khi có thể để làm cho mã của bạn thống nhất hơn.

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...