【问题标题】:PHP: Create custom filter_var() constantsPHP:创建自定义 filter_var() 常量
【发布时间】:2015-06-30 18:36:27
【问题描述】:

我将如何创建用于 PHP filter_var() 的自定义过滤器。

一个例子:

现在我有一个验证日期的功能:

    private function validateDate($date){
        $d = DateTime::createFromFormat('Y-m-d', $date);
        return $d && $d->format('Y-m-d') == $date;
    }

函数是从 answerphp.net 复制而来的

我希望能够调用像FILTER_VALIDATE_DATE 这样的常量,并通过上面的代码对其进行检查。

感谢任何帮助。

【问题讨论】:

  • 你不能。但是你可以传入一个回调/闭包。你为什么不像filter_date()那样做你自己的函数呢?

标签: php constants filter-var


【解决方案1】:

PHP 没有办法让您注册自定义过滤器,因此您不能简单地创建一个新常量来传递。您可以做的最好的事情是使用 FILTER_CALLBACK 并将回调作为第三个参数,像这样:

$valid = filter_var($date, FILTER_CALLBACK, ['options' => 'validateDate']);

【讨论】:

    【解决方案2】:

    您应该使用过滤器回调函数。

    $date = "2015-06-30";
    
    echo filter_input( $date, FILTER_CALLBACK, array('options' => 'validateDate') );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多