php回调函数的实现方法介绍(代码)

如果下载的源码需要作者授权,请更换源码。本站免费分享资源不会增加授权

本篇文章给大家带来的内容是关于php回调函数的实现方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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

回调函数实现

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

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

<?php function trimString($value){     return trim($value); } $args=array(     'options'=>'trimString', ); var_dump(filter_var('abc ',FILTER_CALLBACK,$args)); ?>

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

<?php $args=array(     'options'=>function ($value){return trim($value);}, ); var_dump(filter_var('abc ',FILTER_CALLBACK,$args)); ?>

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

<?php function trimString($array){     return function($value = null) use ($array){         if(key_exists('character_mask',$array)){             return trim($value,$array['character_mask']);           }         return trim($value);     }; } $args=array(     'options'=>trimString(array("character_mask"=>'a..c ')), ); var_dump(filter_var('abcd ',FILTER_CALLBACK,$args)); ?>

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

<?php class TrimFilter{     private $options=array();     private $defaults=array('character_mask'=>" tnrx0B");     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)); ?>
本文由(壳先生)整理自网络,如转载请注明出处:https://www.mrshell.com;
本站发布的内容若侵犯到您的权益,请邮件联系 i@mrshell.com 删除,我们将及时处理!
===========================================================================

1. 本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2. 本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3. 不得使用于非法商业用途,商用请支持正版!不得违反国家法律,否则后果自负!
4. 若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

=================================================================

壳先生 » php回调函数的实现方法介绍(代码)

发表评论

提供最优质的资源集合

立即查看 了解详情