Menu
CoddyTech

Dùng 'call_user_func'

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 5 trên 68.

Hàm (function) call_user_func() cung cấp một cách mạnh mẽ để gọi hàm một cách linh hoạt trong PHP. Thay vì gọi trực tiếp hàm bằng tên của nó, bạn có thể lưu tên hàm trong một biến chuỗi rồi dùng call_user_func() để thực thi hàm đó.

Đây là cú pháp cơ bản:

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Đầu ra: Hello World!
?>

Điều 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 đầu vào của người dùng hoặc các điều kiện. Bạn cũng có thể truyền đối số cho hàm bằng cách thêm chúng làm tham số bổ sung:

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Đầu ra: 8
?>

Việc gọi hàm (function) động này đặc biệt hữu ích khi xây dựng các ứng dụng linh hoạt, trong đó hàm cụ thể cần thực thi được xác định khi chạy, chẳng hạn như máy tính, bộ xử lý lệnh hoặc hệ thống định tuyến.

challenge icon

Thử thách

Dễ

Tạo ba hàm: multiply nhận hai số và trả về tích của chúng, subtract nhận hai số và trả về hiệu của chúng, và divide nhận hai số và trả về thương của chúng.

Bạn sẽ nhận ba đầu vào: tên phép toán ("multiply", "subtract" hoặc "divide") và hai số. Đọc cả ba đầu vào, dùng call_user_func() để chạy hàm phù hợp với hai số, rồi in ra kết quả.

Định dạng đầu vào: Ba dòng: dòng đầu tiên chứa tên phép toán, dòng thứ hai chứa số thứ nhất, dòng thứ ba chứa số thứ hai

Đầu ra mong đợi: Kết quả của phép toán

Tự làm thử

<?php
// Đọc đầu vào
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));

// TODO: Tạo ba hàm (multiply, subtract, divide) tại đây

// TODO: Dùng call_user_func() để chạy hàm phù hợp

// In ra 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