|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家帶來的內容是關于php回調函數的實現方法介紹(代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
回調函數實現 回調函數必須接受一個待過濾的值,并返回過濾后的值,回調函數有四種實現方式。 第一種是直接定義回調函數,并在使用過濾器函數時,將回調過濾器的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'=>" \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));
?>以上就是php回調函數的實現方法介紹(代碼)的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!