You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP函数参数顺序适配:任意传入三类参数输出固定格式内容

实现支持任意参数顺序的PHP check_status函数

解决方案代码

function check_status($a, $b, $c) {
    $username = '';
    $age = 0;
    $isHired = false;

    // 遍历所有参数,按类型分配对应值
    foreach ([$a, $b, $c] as $param) {
        if (is_string($param)) {
            $username = $param;
        } elseif (is_int($param)) {
            $age = $param;
        } elseif (is_bool($param)) {
            $isHired = $param;
        }
    }

    $hireText = $isHired ? 'Available For Hire' : 'Not Available For Hire';
    return "Hello $username, Your Age Is $age, You Are $hireText";
}

代码说明

  1. 类型区分核心逻辑:由于三个参数的类型唯一(字符串、整数、布尔),利用PHP内置的is_string()、is_int()、is_bool()类型检测函数,可无视参数传入顺序,准确提取每个参数对应的含义。
  2. 变量初始化:先定义三个变量存储最终需要的用户名、年龄和雇佣状态,确保即使参数顺序混乱也能正确赋值。
  3. 状态文本生成:根据布尔类型的雇佣状态生成对应描述文本,再拼接成要求的固定格式字符串返回。

测试验证

// 执行测试
echo check_status("User", 38, true); // 输出:Hello User, Your Age Is 38, You Are Available For Hire
echo check_status(38, "User", true); // 输出:Hello User, Your Age Is 38, You Are Available For Hire
echo check_status(true, 38, "Osama"); // 输出:Hello Osama, Your Age Is 38, You Are Available For Hire
echo check_status(false, "User", 38); // 输出:Hello User, Your Age Is 38, You Are Not Available For Hire

关于if语句失败的原因

如果之前用if语句尝试时失败,大概率是因为只针对固定参数顺序做了类型判断,没有覆盖所有6种参数排列组合。而遍历+类型检测的方式无需关心顺序,只要参数类型正确就能匹配,代码更简洁健壮。

内容的提问来源于stack exchange,提问作者DOSHKA - دوشكا

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:40:44