PHP基础教程(43)PHP语言基础之函数:PHP函数大法好:告别复制粘贴,当个偷懒又优雅的程序员!

第一章:为啥要折腾函数?——从“傻干”到“巧干”的觉悟

假设你是个勤劳(但有点傻气)的厨师,每天要做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); // 给口味淡的客人

函数就是把你经常要做的事情,打包成一个“魔法盒子”。需要时喊一声盒子名字,它就帮你搞定一切。好处显而易见:

  1. 一改全改:盐量要调整?改函数里那一行就行,所有调用处自动更新
  2. 屏蔽细节:调用者不用关心“先放蛋还是先放番茄”,只管告诉盒子“我要番茄炒蛋”
  3. 重复使用:一次定义,无限次调用,代码量锐减
  4. 减少错误:逻辑封装在一个地方,避免复制粘贴时漏改某处

说白了,用函数就是从“体力劳动者”升级为“管理者”的过程。 你的代码不再是流水账,而是由一个个专业小分队(函数)协作完成的精密工程。

第二章:函数怎么造?——从“Hello World”到实战工具

2.1 最简单的函数:打个招呼吧
function sayHello() {
    return "嘿,朋友!今天代码写爽了吗?\n";
}

// 使用它
echo sayHello(); // 输出:嘿,朋友!今天代码写爽了吗?

这里发生了三件事:

  • function 是声明函数的关键词,相当于说“我要造个盒子了”
  • sayHello 是你给盒子起的名字,最好用英文+动词,比如getUserInfocalculateTotal
  • {} 花括号里是盒子的“内部机关”,这里是返回一句问候语
  • 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就是函数的“

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值