Match expression in PHP 8

Sử dụng Match expression trong PHP 8. Giúp đoạn code của ta trông maintain hơn. 

$statusCode = 200;

$result_v1 = match ($statusCode) {
    200, 300 => "Thành công",
    400 => "Lỗi client",
    500 => "Lỗi server",
    default => "Không xác định",
};

$result_v2 = match ($statusCode) {
    200, 300 => function($statusCode) {
         return "Thành công!".$statusCode;
         },
    400 => function() {
         return "Lỗi client";
    },
    500 => "Lỗi server",
    default => "Không xác định",
};

// Gọi hàm nếu kết quả là một closure
echo is_callable($result_v2) ? $result_v2($statusCode) : $result_v2;

Ví dụ chúng ta tính toán giá khuyến mãi

function calculateDiscount($price, $percentage) : float {
    return $price * (1 - $percentage / 100);
}

$customerType = "gold";
$originalPrice = 1000;

$discountedPrice = match ($customerType) {
    "bronze" => fn($price) => calculateDiscount($price, 5),
    "silver" => fn($price) => calculateDiscount($price, 10),
    "gold" => fn($price) => calculateDiscount($price, 15),
    "platinum" => fn($price) => calculateDiscount($price, 20),
    default => fn($price) => $price, // Không giảm giá
};

// Áp dụng giảm giá và làm tròn đến 2 chữ số thập phân
$finalPrice = round($discountedPrice($originalPrice), 2);

echo "Loại khách hàng: $customerType\n";
echo "Giá gốc: $originalPrice\n";
echo "Giá sau khuyến mãi: $finalPrice\n";

// Tính phần trăm giảm giá
$discountPercentage = (($originalPrice - $finalPrice) / $originalPrice) * 100;
echo "Phần trăm giảm giá: " . round($discountPercentage, 2) . "%\n";

 

Bài Viết Liên Quan

x

Xin chào! Hãy ủng hộ chúng tôi bằng cách nhấp vào quảng cáo trên trang web. Việc này giúp chúng tôi có kinh phí để duy trì và phát triển website ngày một tốt hơn. (Hello! Please support us by clicking on the ads on this site. Your clicks provide us with the funds needed to maintain and improve the website continuously.)

Ngoài ra, hãy đăng ký kênh YouTube của chúng tôi để không bỏ lỡ những nội dung hữu ích! (Also, subscribe to our YouTube channel to stay updated with valuable content!)

Đăng Ký