PHP: встроенная функция переноса (filter_input) и необязательные параметры

Итак, я знаю, что с PHP вы можете определить необязательные параметры (Вопросы StackOverflow).

Я пытаюсь сделать следующее:

function myFunc($a, $b, $c, $type, $variable_name, $filter, $options)
{
   $value = filter_input($type, $variable_name, $filter, $options);

   //Do something with $a, $b, $c, and $value
}

Поскольку я передаю параметры, относящиеся к встроенной функции filter_input, я знаю, что $filter и $options являются необязательными параметрами, и чтобы сделать их необязательными, я просто присвоил бы им значение по умолчанию. Но я не уверен, каким должно быть это значение по умолчанию. Я предполагаю, что $filter по умолчанию должен иметь значение FILTER_DEFAULT, что имеет смысл, но я не могу найти никакой информации о том, какие $options должны использоваться по умолчанию.


person michael    schedule 21.12.2010    source источник


Ответы (3)


По умолчанию оба параметра $filter и $options равны NULL. Они необязательны и для filter_input(), так зачем присваивать им значение, когда filter_input() сделает это за вас? Если бы PHP когда-нибудь обновил значения по умолчанию для функции, вы бы тоже были в курсе.

Ваша функция будет выглядеть так:

function myFunc($a, $b, $c, $type, $variable_name, $filter=NULL, $options=NULL)
{...
person Surreal Dreams    schedule 21.12.2010
comment
Итак, если я сделаю filter_input($type, $variable_name, null, null), это будет то же самое, что и filter_input($type, $variable_name)? - person michael; 21.12.2010
comment
Это точно эквивалентно. Вы либо указываете значения NULL, либо подразумеваете их, но в любом случае вы передаете NULL. - person Surreal Dreams; 21.12.2010

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

function myFunc($a, $b, $c, $type, $variable_name, $filter, $options=null) {
    ...

..было бы идеальным, если только для этого нет конкретной причины для приложения.

person John Parker    schedule 21.12.2010

В документации по методу filter_input предполагается, что ожидаемое значение является целым числом, поэтому вероятно, это будет 0.

person Matt Asbury    schedule 21.12.2010