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
相关产品推荐
相关产品推荐

