Trong ngôn ngữ lập trình PHP, có một loại toán tử được gọi là toán tử gán có điều kiện. Trong bài viết này, Dai Pho sẽ giới thiệu về toán tử gán có điều kiện trong PHP.
Giới thiệu
Toán tử gán điều kiện trong PHP được sử dụng để gán giá trị cho toán hạng dựa trên kết quả của một điều kiện nhất định. Có hai loại toán tử gán có điều kiện: toán tử bậc ba
và toán tử hợp nhất null
.
Toán tử bậc ba ?:
Toán tử bậc ba còn gọi là toán tử Ternary
. Cú pháp cơ bản:
$daipho = (biểu_thức_so_sánh) ? biểu_thức_true : biểu_thức_false;
Trong đó biểu_thức_so_sánh
, biểu_thức_true
và biểu_thức_false
là có thể là biểu thức hoặc cũng có thể là biến.
Trong cú pháp trên, nếu biểu_thức_so_sánh
là true
, giá trị của biến $daipho
sẽ được gán tương ứng với biểu_thức_true
. Ngược lại sẽ là biểu_thức_false
.
Ví dụ:
<?php
$author = 'Dai Pho';
$domain = ( !empty($author) ) ? "daipho.com" : "unknown";
echo $domain; //giá trị sẽ là: daipho.com
?>
Toán tử hợp nhất Null ??
Kể từ phiên bản PHP 7, bạn có thêm toán tử ??
. Toán tử này còn được gọi là null coalescing
. Về cơ bản toán tử này được sử dụng để kiểm tra điều kiện NULL
trước khi gán giá trị.
$daipho = biểu_thức_1 ?? biểu_thức_2;
Biểu thức này gán giá trị cho biến $daipho
. Nếu biểu_thức_1
đã tồn tại và không phải là NULL
thì giá trị của biến $daipho
sẽ là biểu_thức_1
. Ngược lại giá trị của biến $daipho
sẽ là biểu_thức_2
.
Đoạn biểu thức bên trên có thể được viết lại theo cú pháp của toán tử bậc ba như sau:
<?php
//dòng lệnh này
//$daipho = $exp_1 ?? $exp_2;
//tương đương với đoạn dòng lệnh
$daipho = isset($exp_1) ? $exp_1 : $exp_2;
Một số ví dụ
Một số ví dụ minh họa cho việc sử dụng toán tử gán có điều kiện.
Ví dụ 1:
<?php
$age = 20;
$status = ($age >= 18) ? "adult" : "minor";
echo $status; // Output: adult
?>
Ví dụ 2:
<?php
// Biến $name chưa được khai báo
$defaultName = "Guest";
echo $name ?? $defaultName; // Output: Guest
// Biến $name đã được khai báo và có giá trị
$name = "John";
echo $name ?? $defaultName; // Output: John
?>
Ví dụ 3: 2 cách viết này là tương đương
<?php
$value = null;
$default = "default_value";
// Sử dụng toán tử "null coalescing"
$variable1 = $value ?? $default;
// Sử dụng toán tử ba ngôi (ternary)
$variable2 = isset($value) ? $value : $default;
echo $variable1; // Output: default_value
echo $variable2; // Output: default_value
?>
Ví dụ 4: kiểm tra input
Trong nhiều trường hợp, chúng ta cần kiểm tra có input từ người dùng hay không. Nếu không ta sẽ sử dụng giá trị mặc định an toàn thay vì gặp lỗi khi cố gắng truy cập một biến không tồn tại. Dưới đây là một ví dụ về cách kiểm tra một input và gán giá trị mặc định nếu input không tồn tại:
<?php
// Giả sử có một input từ người dùng
$userInput = $_POST['user_input'] ?? null;
// Kiểm tra xem input có tồn tại và không phải là null không
if ($userInput !== null) {
// Nếu tồn tại, sử dụng input từ người dùng
$processedInput = $userInput;
} else {
// Nếu không tồn tại, sử dụng giá trị mặc định
$processedInput = "default_value";
}
// In ra giá trị đã xử lý
echo $processedInput;
?>