【问题标题】:PHP: Wrapping built-in function (filter_input) and optional parametersPHP:包装内置函数(filter_input)和可选参数
【发布时间】:2010-12-21 14:34:37
【问题描述】:

所以,我知道使用 PHP 可以定义可选参数 (StackOverflow Questions)。

我想要做的是:

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 应该默认的信息。

【问题讨论】:

    标签: php filter-input


    【解决方案1】:

    默认 $filter 和 $options 为 NULL。它们对于filter_input() 也是可选的,那么当filter_input() 会为您执行此操作时,为什么要为它们分配一个值呢?如果 PHP 曾经更新函数的默认值,那么你也仍然是最新的。

    你的函数应该是这样的:

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

    【讨论】:

    • 所以如果我这样做 filter_input($type, $variable_name, null, null) 将与 filter_input($type, $variable_name) 相同?
    • 完全一样。你要么拼出 NULL 值,要么暗示它们,但无论哪种方式,你都传递 NULL。
    【解决方案2】:

    由于filter_input 函数的选项参数是er.. 可选的,可以是数组或位掩码,所以我怀疑使用...

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

    ..将是理想的,除非有特定应用程序的原因需要这样做。

    【讨论】:

      【解决方案3】:

      filter_input 方法的文档表明预期值是一个整数,因此它可能是 0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        • 2018-02-18
        • 2017-11-12
        • 2014-05-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多