智睿享
白蓝主题五 · 清爽阅读
首页  > 软件指南

PHP脚本函数定义:从基础到实用技巧

在写 PHP 脚本的时候,函数就像一个个小工具箱,把重复的代码打包起来,用的时候直接调用就行。比如你经常要格式化时间、验证邮箱或者计算折扣,把这些操作封装成函数,不仅让代码更整洁,也方便后期维护。

函数的基本定义方式

PHP 中定义一个函数很简单,使用 function 关键字,后面跟上函数名和括号,括号里可以放参数,然后用大括号包裹函数体。

function sayHello($name) {
    echo "你好," . $name . "!欢迎来到智睿享";
}

上面这个例子中,sayHello 是函数名,$name 是传入的参数。调用的时候只需要这样:

sayHello("小明");
// 输出:你好,小明!欢迎来到智睿享

带返回值的函数

有时候我们不希望函数直接输出内容,而是返回一个结果,比如计算两个数的和。

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

$result = add(5, 3);
echo $result; // 输出 8

这里用了 return 关键字,表示函数执行完后返回一个值。这种写法在做数据处理时特别常见,比如从数据库取数据后做加工再返回。

默认参数和可选参数

有些时候参数不是每次都得传,比如发送邮件时,抄送人可能为空。PHP 支持给参数设置默认值。

function sendEmail($to, $subject, $cc = null) {
    echo "收件人:" . $to . "\n";
    if ($cc) {
        echo "抄送:" . $cc . "\n";
    }
    echo "主题:" . $subject . "\n";
}

调用时可以不传 $cc

sendEmail("user@example.com", "今日优惠");

这样代码更灵活,避免每次都要填一堆参数。

变量作用域要注意

在函数内部,默认是访问不到外部变量的。比如下面这段代码不会输出预期结果:

$site = "智睿享";

function showSite() {
    echo $site; // 这里拿不到外面的 $site
}
showSite();

如果真想用外部变量,可以用 global 关键字,但一般不推荐滥用,容易让代码变得混乱。更好的方式是通过参数传进去。

function showSite($site) {
    echo $site;
}
showSite("智睿享");

匿名函数:灵活的小助手

除了常规函数,PHP 还支持匿名函数,也就是没有名字的函数,常用于回调场景。比如数组排序时自定义规则:

$numbers = [3, 1, 4, 1, 5];
usort($numbers, function($a, $b) {
    return $b - $a; // 降序排列
});

print_r($numbers); // 输出 [5,4,3,1,1]

这种写法在处理数据集合时非常顺手,不用单独定义一个函数名,代码更紧凑。

实际应用场景举例

假设你在做一个简单的用户注册功能,需要验证邮箱格式。可以把验证逻辑单独写成一个函数:

function isValidEmail($email) {
    return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}

if (isValidEmail("test@example.com")) {
    echo "邮箱格式正确";
} else {
    echo "邮箱格式有误";
}

以后 anywhere 需要验证邮箱,直接调用 isValidEmail 就行,不用重复写正则或判断逻辑。

函数的本质就是“一次编写,多次使用”。合理使用 PHP 脚本函数定义,能让代码更清晰、更容易调试,也能让团队协作更顺畅。尤其是项目变大之后,良好的函数设计能省下不少排查问题的时间。