回调函数
本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 4 课,共 68 课。
回调函数是作为参数传递给另一个函数的函数。你不会立即调用这个函数,而是传递它的名称,这样接收它的函数就可以在需要时稍后调用它。
要将函数作为回调传递,只需将函数名用作字符串:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// 进行一些处理……
$callback($username); // 调用回调函数
}
processUser("Alice", "greet"); // 输出:Hello, Alice!
?>在这个例子中,"greet" 会作为回调传递给 processUser()。然后,processUser() 函数会使用这个字符串作为函数名来调用回调。
回调非常有用,因为它们能让你的函数更加灵活。同一个函数可以根据你传入的回调执行不同的操作。这个概念是 PHP 中许多内置函数的基础,比如 array_map() 和 array_filter(),你会在本课程后面的内容中遇到它们。
挑战
简单创建两个函数:一个名为 formatUppercase,接收一个字符串并将其转换为大写;另一个名为 formatLowercase,接收一个字符串并将其转换为小写。
然后创建一个名为 applyFormat 的函数,接收两个参数:一个文本字符串和一个回调函数名。这个函数应将回调应用于文本,并返回结果。
你会收到两个输入:操作类型("upper" 或 "lower")以及要格式化的文本。读取这两个输入,根据操作类型确定要使用哪个回调,使用相应的回调调用 applyFormat,然后打印格式化后的结果。
输入格式:两行,第一行包含操作类型("upper" 或 "lower"),第二行包含要格式化的文本
预期输出:根据操作类型格式化后的文本
亲手试试
<?php
// 读取输入
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// TODO: 在下方编写你的代码
// 创建 formatUppercase 函数
// 创建 formatLowercase 函数
// 创建 applyFormat 函数
// 根据操作类型确定使用哪个回调函数
// 使用合适的回调函数调用 applyFormat
// 输出结果
echo $result;
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: PHP 在线编译器