Hàm biế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 6 trên 68.
Hàm thông qua biến (function) là một cách khác để gọi hàm linh hoạt trong PHP. Thay vì dùng call_user_func(), bạn có thể gọi trực tiếp một hàm bằng cách xem biến chứa tên hàm như chính hàm đó.
Cú pháp rất đơn giản: nếu bạn có một biến chứa tên hàm, bạn có thể gọi hàm đó bằng cách thêm dấu ngoặc đơn vào biến:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Đầu ra: Hello World!
?>Điều này cũng áp dụng với các hàm nhận tham số (parameter). Bạn chỉ cần truyền các đối số (argument) vào trong dấu ngoặc đơn:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Đầu ra: Hello, Alice!
?>Các hàm biến cung cấp một cách rõ ràng và trực quan để chạy code một cách linh hoạt. Tính năng này đặc biệt hữu ích khi bạn cần gọi các hàm khác nhau dựa trên điều kiện hoặc đầu vào của người dùng, giúp code linh hoạt và dễ thích ứng hơn.
Thử thách
DễTạo ba hàm: calculateArea nhận hai số (chiều dài và chiều rộng) rồi trả về tích của chúng, calculatePerimeter nhận hai số rồi trả về tổng của chúng nhân đôi, và calculateDiagonal nhận hai số rồi trả về căn bậc hai của tổng bình phương của chúng.
Bạn sẽ nhận ba đầu vào: tên phép tính ("area", "perimeter" hoặc "diagonal"), chiều dài và chiều rộng. Đọc cả ba đầu vào, lưu tên hàm vào một biến, gọi hàm đó bằng cú pháp gọi hàm qua biến với hai số đo, rồi in kết quả.
Định dạng đầu vào: Ba dòng: dòng đầu tiên chứa tên phép tính, dòng thứ hai chứa chiều dài (một số có thể có phần thập phân), dòng thứ ba chứa chiều rộng (một số có thể có phần thập phân)
Đầu ra dự kiến: Kết quả của phép tính
Tự làm thử
<?php
// Đọc các đầu vào
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Tạo ba hàm (function) tại đây (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Gọi hàm phù hợp bằng cú pháp hàm biến và lưu kết quả
// In kết quả ra
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