使用 “call_user_func”
本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 5 课,共 68 课。
call_user_func() 函数提供了一种在 PHP 中动态调用函数的强大方式。你可以将函数名存储在字符串变量中,然后使用 call_user_func() 来执行它,而不是直接通过函数名调用函数。
这是基本语法:
<?php
function greet() {
echo "Hello World!";
}
$functionName = "greet";
call_user_func($functionName); // 输出:Hello World!
?>当你需要根据用户输入或条件调用不同的函数时,这会特别有用。你也可以将参数作为额外参数传递给函数:
<?php
function add($a, $b) {
return $a + $b;
}
$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result; // 输出:8
?>这种动态函数调用在构建灵活的应用程序时尤其有用。在这类应用程序中,要执行的具体函数是在运行时确定的,例如计算器、命令处理器或路由系统。
挑战
简单创建三个函数:multiply 接收两个数字并返回它们的乘积,subtract 接收两个数字并返回它们的差,divide 接收两个数字并返回它们的商。
你会收到三个输入:操作名称("multiply"、"subtract" 或 "divide")以及两个数字。读取这三个输入,使用 call_user_func() 将这两个数字传递给相应的函数并执行,然后输出结果。
输入格式:共 3 行。第 1 行包含操作名称,第 2 行包含第一个数字,第 3 行包含第二个数字。
预期输出:操作结果
亲手试试
<?php
// 读取输入
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));
// TODO:在这里创建三个函数(multiply、subtract、divide)
// TODO:使用 call_user_func() 执行相应的函数
// 输出结果
echo $result;
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: PHP 在线编译器