php获取回调url方法,php回调函数的实现方法介绍(代码)
本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于php回調(diào)函數(shù)的實(shí)現(xiàn)方法介紹(代碼),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。名稱(chēng)id說(shuō)明選項(xiàng)options
回調(diào)過(guò)濾器(callback)1024調(diào)用自定義函數(shù)來(lái)過(guò)濾數(shù)據(jù)callable函數(shù)或方法
回調(diào)函數(shù)實(shí)現(xiàn)
回調(diào)函數(shù)必須接受一個(gè)待過(guò)濾的值,并返回過(guò)濾后的值,回調(diào)函數(shù)有四種實(shí)現(xiàn)方式。
第一種是直接定義回調(diào)函數(shù),并在使用過(guò)濾器函數(shù)時(shí),將回調(diào)過(guò)濾器的options設(shè)置為自定義的回調(diào)函數(shù)。<?php
function trimString($value){
return trim($value);
}
$args=array(
'options'=>'trimString',
);
var_dump(filter_var('abc ',FILTER_CALLBACK,$args));
?>
第二種是在使用過(guò)濾器函數(shù)時(shí),將回調(diào)過(guò)濾器的options直接設(shè)置為回調(diào)函數(shù)。<?php
$args=array(
'options'=>function ($value){return trim($value);},
);
var_dump(filter_var('abc ',FILTER_CALLBACK,$args));
?>
第三種是通過(guò)閉包實(shí)現(xiàn)調(diào)用回調(diào)函數(shù)來(lái)傳遞其他參數(shù)。<?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));
?>
第四種是使用類(lèi)中的函數(shù)作為回調(diào)函數(shù),可以用來(lái)將多個(gè)過(guò)濾器回調(diào)函數(shù)集中到一起。<?php
class TrimFilter{
private $options=array();
private $defaults=array('character_mask'=>" \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));
?>
總結(jié)
以上是生活随笔為你收集整理的php获取回调url方法,php回调函数的实现方法介绍(代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 追加 java,收藏 java追加写文件
- 下一篇: matlab crf 工具包,pytho