Hàm ẩn danh
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 1 trên 68.
Hàm ẩn danh, còn gọi là hàm đóng (closure), là những hàm không có tên cụ thể. Chúng rất phù hợp với những tác vụ ngắn, chỉ dùng một lần, khi việc tạo một hàm có tên đầy đủ là không cần thiết.
Để tạo một hàm ẩn danh, bạn dùng từ khóa function mà không đặt tên hàm, sau đó gán hàm đó cho một biến:
<?php
$greeting = function($name) {
echo "Hello, " . $name . "!";
};
?>Hãy chú ý dấu chấm phẩy sau dấu ngoặc nhọn đóng. Dấu này cần thiết vì bạn đang gán hàm (function) cho một biến.
Để gọi hàm ẩn danh, bạn dùng tên biến theo sau là dấu ngoặc đơn:
<?php
$greeting("Alice"); // In ra: Hello, Alice!
?>Hàm ẩn danh (anonymous function) đặc biệt hữu ích khi bạn cần một hàm đơn giản cho một tác vụ cụ thể mà không làm đoạn code trở nên rối mắt với những hàm có tên chỉ dùng một lần.
Thử thách
DễTạo một hàm ẩn danh nhận một số làm tham số và trả về bình phương của số đó. Gán hàm này cho biến có tên $square.
Bạn sẽ nhận một số làm đầu vào. Đọc số đó, gọi hàm ẩn danh với số này và in ra kết quả.
Định dạng đầu vào: Một số duy nhất (có thể có phần thập phân)
Đầu ra dự kiến: Bình phương của số đầu vào
Tự làm thử
<?php
// Đọc đầu vào (input)
$number = floatval(fgets(STDIN));
// TODO: Tạo một hàm (function) ẩn danh và gán cho biến (variable) $square
// Gọi hàm và in ra kết quả
echo $square($number);
?>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