Зависимости параметров функции - PullRequest
0 голосов
/ 01 ноября 2010

Считается ли это плохим проектом, если функция использует значение параметра, только если другой параметр имеет определенное значение?

Вот пример функции:

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

Вот используемая функция:

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

В первом примере использования третий параметр опущен. Второй параметр имеет значение «обязательный», что делает третий параметр неактуальным. Если передан третий параметр, функция не примет его во внимание.

Это делает дизайн функции плохим?

Ответы [ 2 ]

3 голосов
/ 01 ноября 2010

Это делает дизайн функции плохим?

Я бы сказал, нет, абсолютно нет.

Если вы документируете свой код, отметьте третий параметр как необязательный.

В phpDocumentor это достигается путем присвоения ему значения по умолчанию (что в любом случае вам нужно сделать в вашем случае).

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

Я никогда не сталкивался с мнением, которое высказывалось бы против этого.

1 голос
/ 01 ноября 2010

Это не делает дизайн функции плохим;но, возможно, вам следует установить значение по умолчанию для третьего параметра в определении функции, чтобы не обязательно вызывать функцию с третьим параметром.

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

EDIT

Функция setlocale () в ядре PHP, возможно, похожа на то, что вы хотите

...