第一章:为啥要折腾函数?——从“傻干”到“巧干”的觉悟
假设你是个勤劳(但有点傻气)的厨师,每天要做100份番茄炒蛋。没有函数的世界里,你的操作手册是这样的:
// 第一天,你写下:
echo "1. 拿出锅,烧热\n";
echo "2. 倒入10ml油\n";
echo "3. 打入鸡蛋,炒散\n";
echo "4. 加入番茄块\n";
echo "5. 放3克盐\n";
echo "6. 出锅装盘\n";
// 第二天,又来100份...你只能复制粘贴上面6行
// 第三天,继续复制粘贴...
// 第100天,老板说:“盐改成4克吧”
// 你:......(面对100份代码,手动改到崩溃)
这就是没有函数的痛苦:重复、难维护、易出错。
现在,来看看有函数的“聪明厨子”怎么做:
function 做番茄炒蛋($盐量 = 3) {
$步骤 = "1. 拿出锅,烧热\n";
$步骤 .= "2. 倒入10ml油\n";
$步骤 .= "3. 打入鸡蛋,炒散\n";
$步骤 .= "4. 加入番茄块\n";
$步骤 .= "5. 放{$盐量}克盐\n";
$步骤 .= "6. 出锅装盘\n";
return $步骤;
}
// 需要做菜时:
echo 做番茄炒蛋(); // 默认3克盐
echo 做番茄炒蛋(4); // 老板要求的4克盐
echo 做番茄炒蛋(2); // 给口味淡的客人
函数就是把你经常要做的事情,打包成一个“魔法盒子”。需要时喊一声盒子名字,它就帮你搞定一切。好处显而易见:
- 一改全改:盐量要调整?改函数里那一行就行,所有调用处自动更新
- 屏蔽细节:调用者不用关心“先放蛋还是先放番茄”,只管告诉盒子“我要番茄炒蛋”
- 重复使用:一次定义,无限次调用,代码量锐减
- 减少错误:逻辑封装在一个地方,避免复制粘贴时漏改某处
说白了,用函数就是从“体力劳动者”升级为“管理者”的过程。 你的代码不再是流水账,而是由一个个专业小分队(函数)协作完成的精密工程。
第二章:函数怎么造?——从“Hello World”到实战工具
2.1 最简单的函数:打个招呼吧
function sayHello() {
return "嘿,朋友!今天代码写爽了吗?\n";
}
// 使用它
echo sayHello(); // 输出:嘿,朋友!今天代码写爽了吗?
这里发生了三件事:
function是声明函数的关键词,相当于说“我要造个盒子了”sayHello是你给盒子起的名字,最好用英文+动词,比如getUserInfo、calculateTotal{}花括号里是盒子的“内部机关”,这里是返回一句问候语return是函数的“产出”,调用函数时得到的就是它返回的东西
2.2 让函数带点“记忆”:参数的使用
函数如果只能做固定的事,那还不够聪明。参数就是函数的“耳朵”,让它能接收外部信息:
// 基础版:一个参数
function greetUser($name) {
return "欢迎你," . $name . "!你是今天第" . rand(1, 100) . "位访客。\n";
}
echo greetUser("张三"); // 欢迎你,张三!你是今天第37位访客。
echo greetUser("李四"); // 欢迎你,李四!你是今天第82位访客。
// 升级版:多个参数,还有默认值
function createIntro($name, $job = "程序员", $mood = "开心") {
$模板 = [
"开心" => "元气满满的",
"一般" => "正在摸鱼的",
"难过" => "需要咖啡续命的"
];
return "大家好,我是{$name},一个{$模板[$mood]}{$job}。\n";
}
echo createIntro("小王"); // 默认程序员、开心
echo createIntro("小李", "设计师", "一般"); // 自定义
参数使用技巧:
- 必需参数放前面:像
$name这种必须提供的参数放最前面 - 默认参数放后面:像
$job = "程序员"这种有默认值的放后面,调用时可省略 - 类型声明(PHP7+):可以指定参数类型,减少错误
function addNumbers(int $a, int $b): int {
return $a + $b;
}
echo addNumbers(5, 3); // 8
// echo addNumbers("5", "3"); // 严格模式下会报错,但PHP会尝试转换
2.3 函数也得“有产出”:返回值的花样玩法
函数不是哑巴,执行完得告诉调用者结果。return就是函数的“

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



