博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP回调过滤器及回调函数写法
阅读量:2176 次
发布时间:2019-05-01

本文共 2028 字,大约阅读时间需要 6 分钟。

名称 id 说明 选项options
回调过滤器(callback) 1024 调用自定义函数来过滤数据 callable函数或方法

回调函数实现

回调函数必须接受一个待过滤的值,并返回过滤后的值,回调函数有四种实现方式。

第一种是直接定义回调函数,并在使用过滤器函数时,将回调过滤器的options设置为自定义的回调函数。

'trimString',);var_dump(filter_var('abc ',FILTER_CALLBACK,$args));?>

 第二种是在使用过滤器函数时,将回调过滤器的options直接设置为回调函数。

function ($value){return trim($value);},);var_dump(filter_var('abc ',FILTER_CALLBACK,$args));?>

第三种是通过闭包实现调用回调函数来传递其他参数。

trimString(array("character_mask"=>'a..c ')),);var_dump(filter_var('abcd ',FILTER_CALLBACK,$args));?>

第四种是使用类中的函数作为回调函数,可以用来将多个过滤器回调函数集中到一起。

" \t\n\r\0\x0B"); public function __construct(array $options=array()){ $this->options = $options; } private function get_options(array $defaults){ return array_merge($defaults, $this->options); } function trimString($value){ $ops=$this->get_options($this->defaults); if(key_exists('character_mask',$ops)){ return trim($value,$ops['character_mask']); } return trim($value); } function ltrimString($value){ $ops=$this->get_options($this->defaults); if(key_exists('character_mask',$ops)){ return ltrim($value,$ops['character_mask']); } return ltrim($value); } function rtrimString($value){ $ops=$this->get_options($this->defaults); if(key_exists('character_mask',$ops)){ return rtrim($value,$ops['character_mask']); } return rtrim($value); } }$trim_args=array( 'options'=>array( new TrimFilter(array('character_mask'=>" a")),TRIMSTRING ));$ltrim_args=array( 'options'=>array( new TrimFilter(array('character_mask'=>" a")),LTRIMSTRING ));$rtrim_args=array( 'options'=>array( new TrimFilter(),RTRIMSTRING ));$str="abcd ";var_dump(filter_var($str,FILTER_CALLBACK,$trim_args));var_dump(trim($str," a"));var_dump(filter_var($str,FILTER_CALLBACK,$ltrim_args));var_dump(ltrim($str," a"));var_dump(filter_var($str,FILTER_CALLBACK,$rtrim_args));var_dump(ltrim($str));?>

 

转载地址:http://lykkb.baihongyu.com/

你可能感兴趣的文章
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
什么是ActiveRecord
查看>>
有道词典for mac在Mac OS X 10.9不能取词
查看>>
关于“团队建设”的反思
查看>>
利用jekyll在github中搭建博客
查看>>
Windows7中IIS简单安装与配置(详细图解)
查看>>
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
强引用 软引用 弱引用 虚引用
查看>>