PHP: Toán tử gán có điều kiện

PHP: Toán tử gán có điều kiện

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 batoá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_truebiể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ánhtrue, 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;
?>

Các tính năng mặc định của trang web

Các trang web được Đại Phố thiết kế luôn mặc định các tính năng sau:

  • Mã nguồn được tối ưu với các công cụ tìm kiếm.
  • Trang web hỗ trợ thiết bị di động, tương thích với mọi thiết bị: điện thoại, máy tính bảng, máy tính và laptop. Sử dụng công nghệ HTML5, CSS3 Mobile Responsive.
  • Dễ dàng thay đổi theo phong cách riêng của bạn.
  • Dễ dàng thêm bớt số lượng các trang, và chỉnh sửa nội hiển thị trên website tùy ý
  • Phần quản trị rõ ràng, trực quan, dễ sử dụng với cả những người không chuyên về IT.

Quản lí nội dung: có thể dễ dàng thêm, xóa, sửa các thông tin trên website

  • Thông tin sản phẩm và dịch vụ của công ty
  • Thông tin dự án, đối tác Giới thiệu – Liên hệ
  • Thông tin giới thiệu, thông tin liên hệ
  • Tin tức
  • Hình ảnh trên website, sửa các tag alt, descriotion, caption
  • Hình ảnh và caption trên Slideshow
Xin vui lòng liên hệ với chúng tôi nếu cần thêm thông tin
trang web có chức năng quản trị dễ sử dụng nhất, thương mại điện tử,