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.
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;
?>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
1Hàm nâng cao
Hàm ẩn danhClosure và 'use'Hàm mũi tênHàm callbackDùng 'call_user_func'Hàm biếnTruyền tham chiếuHàm đệ quyÔn tập: tổng hợp về hàm4Mảng đa chiều
Tạo mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuChỉnh sửa phần tử trong mảng 2 chiềuLặp qua các vòng lặp lồng nhauMảng kết hợp 2 chiềuÔn tập: bài tập lưới đơn giản2Thao tác nâng cao với mảng
Thêm phần tử bằng 'array_push'Xóa phần tử bằng 'array_pop'Thêm phần tử vào đầu mảng bằng 'array_unshift'Xóa phần tử đầu mảng bằng 'array_shift'Gộp các mảng được đánh chỉ sốGộp các mảng kết hợpTrích xuất phần tử bằng 'array_slice'Kiểm tra giá trị bằng 'in_array'Tìm khóa bằng 'array_search'Ôn tập: bài tập về danh sách phát3Sắp xếp mảng
Sắp xếp mảng có chỉ số tăng dầnSắp xếp mảng có chỉ số giảm dầnSắp xếp mảng kết hợp theo giá trịSắp xếp mảng kết hợp theo khóaSắp xếp theo thứ tự tự nhiênSắp xếp tùy chỉnh bằng 'usort'Ôn tập: Sắp xếp bảng xếp hạngTự luyện tập: Trình biên dịch PHP online