Menu
CoddyTech

Hàm mũi tên

Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 3 trên 68.

Hàm mũi tên, được giới thiệu trong PHP 7.4, giúp viết các hàm ẩn danh đơn giản ngắn gọn hơn. Chúng dùng từ khóa fn thay cho cú pháp đầy đủ function, giúp đoạn code ngắn gọn và dễ đọc hơn.

Sau đây là cách bạn tạo một hàm mũi tên:

<?php
$greeting = fn($name) => "Hello, " . $name . "!";
echo $greeting("Alice");  // In ra: Hello, Alice!
?>

Hãy chú ý đến những điểm khác biệt chính: hàm mũi tên dùng fn thay cho function, có mũi tên => hướng đến biểu thức và không cần dấu ngoặc nhọn hay câu lệnh return đối với các biểu thức đơn giản.

Ưu điểm lớn nhất của hàm mũi tên là chúng tự động lấy các biến từ phạm vi bên ngoài, không cần từ khóa use:

<?php
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob");  // Đầu ra: Welcome, Bob!
?>

Hàm mũi tên (arrow function) rất phù hợp với các thao tác ngắn, đơn giản, khi cú pháp hàm ẩn danh truyền thống có vẻ quá dài dòng.

challenge icon

Thử thách

Dễ

Tạo một hàm mũi tên nhận tên sản phẩm làm tham số và trả về nhãn sản phẩm đã định dạng. Hàm mũi tên cần nắm bắt tên danh mục từ phạm vi xung quanh.

Bạn sẽ nhận hai đầu vào: tên danh mục và tên sản phẩm. Đọc cả hai đầu vào, tạo một hàm mũi tên nắm bắt danh mục và định dạng nhãn sản phẩm theo dạng "[Category] Product", gọi hàm mũi tên với tên sản phẩm rồi in ra kết quả.

Định dạng đầu vào: Hai dòng, dòng đầu chứa tên danh mục, dòng thứ hai chứa tên sản phẩm

Đầu ra mong đợi: Nhãn sản phẩm đã định dạng theo dạng "[Category] Product"

Tự làm thử

<?php
// Đọc đầu vào
$category = trim(fgets(STDIN));
$product = trim(fgets(STDIN));

// TODO: Viết code bên dưới
// Tạo một hàm mũi tên để lấy danh mục và định dạng nhãn sản phẩm


// Gọi hàm mũi tên và xuất kết quả
echo $result;
?>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch PHP online