函数参数的依赖关系

时间:2010-11-01 15:58:02

标签: php function coding-style

如果函数仅在另一个参数具有特定值时才使用参数值,那么它被认为是一个糟糕的设计吗?

这是一个示例函数:

validate_input($field_name, $validation_rule, $validation_value);

这是使用中的功能:

validate_input("username", "required");
validate_input("username", "min_length", 3);

在第一个用法示例中,省略了第三个参数。第二个参数的值为“required”,这使得第三个参数无关紧要。如果传递了第三个参数,则该函数不会将其考虑在内。

这会使功能设计变坏吗?

2 个答案:

答案 0 :(得分:3)

  

这会使功能设计变坏吗?

我会说不,绝对不是。

如果您记录代码,请将第三个参数标记为可选。

phpDocumentor中,这是通过给它一个默认值(在你的情况下你需要做的)来实现的。

function validate_input($field_name, $validation_rule, $validation_value = null);

我从未遇到任何反对此事的意见。

答案 1 :(得分:1)

它不会使功能设计变坏;但是你应该在函数定义中为第三个参数设置一个默认值,这样就不一定要用第三个参数来调用函数。

function validate_input($field_name, $validation_rule, $validation_value=null) {
    ....
}

修改

核心PHP中的setlocale()函数可能类似于你想要的