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

PHP程序多模块场景下如何复用自定义函数避免重复编写代码

解决方案

核心思路:将可变的配置键名作为函数参数传入

你只需要对原有函数做参数化改造,即可实现一次编写、多场景复用,无需重复拷贝代码,也不需要依赖全局变量。

改造后的完整函数代码

function something(string $config_key) {
    // 统一读取配置,只需传入不同的键名即可适配不同数据段
    $config = get_option('config');
    $something = $config[$config_key] ?? '';

    // 优化原有多分支判断,用数组映射更易维护
    $map = [
        '0' => 'zero',
        '1' => 'one',
        '2' => 'two',
        '3' => 'three',
        '4' => 'four',
        '5' => 'five',
    ];

    echo $map[$something] ?? '';
}

调用方式

需要使用对应数据段时,直接传入对应的键名即可:

  • 读取data_in_database_one:something('data_in_database_one');
  • 读取data_in_database_two:something('data_in_database_two');
  • 读取data_in_database_three:something('data_in_database_three');
    后面新增其他数据段也不需要修改函数本身,直接传新的键名即可。

可选方案:封装独立快捷调用函数

如果你需要完全独立的调用入口(对应你提到的不同标识对应不同配置的逻辑),可以在上述通用函数的基础上再封装一层快捷函数:

// 对应data_in_database_one的调用入口
function something_one() {
    return something('data_in_database_one');
}

// 对应data_in_database_two的调用入口
function something_two() {
    return something('data_in_database_two');
}

调用时直接执行对应函数即可:something_one();、something_two();

内容的提问来源于stack exchange,提问作者Angel Hess

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:15:01