PHP函数默认参数如何使用?实现无需重复默认值的单行调用
实现一行调用且避免重复默认参数值的方法
你可以通过构造参数数组并传递的方式实现一行调用,完全不需要重复写默认参数值1,具体有两种常用方式:
方法1:数组展开语法(PHP 5.6+)
利用PHP的可变参数展开...语法,根据$bool的值构造不同长度的参数数组,再传递给函数:
add(...($bool ? [5, 5] : [5]));
当$bool为true时,传递两个参数5和5;为false时只传递一个参数5,函数会自动使用预设的默认参数值1,完美避免了硬编码默认值。
方法2:call_user_func_array(兼容PHP 5.3+)
如果需要兼容更早的PHP版本,可以使用call_user_func_array函数,它接收函数名和参数数组作为参数:
call_user_func_array('add', $bool ? [5, 5] : [5]);
效果和方法1完全一致,只是语法形式不同。
为什么不能直接用占位符?
PHP并没有内置类似USE_DEFAULT_PARAMETER的常量或语法来直接指定使用默认参数,必须通过传递对应数量的参数来触发默认值逻辑——不传第二个参数时,函数就会自动使用预设的默认值,这也是最简洁且符合PHP规范的实现方式。
内容的提问来源于stack exchange,提问作者SimonSolutions
相关产品推荐
相关产品推荐

