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'=>" \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 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック








![「[Vue 警告]: フィルターを解決できませんでした」エラーを解決する方法](https://img.php.cn/upload/article/000/887/227/169243040583797.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
「[Vuewarn]:Failedtoresolvefilter」エラーを解決する方法 Vue を使用した開発プロセス中に、「[Vuewarn]:Failedtoresolvefilter」というエラー メッセージが表示されることがあります。このエラー メッセージは通常、テンプレートで未定義のフィルターを使用したときに発生します。この記事では、このエラーを解決する方法を説明し、対応するコード例を示します。 Vue を使用しているとき

1. フィルター まず、Web サーバーのフィルターの場所を確認します。フィルタは前後につながったチェーンであり、前の処理が完了すると次のフィルタに渡されて処理が行われます。 1.1フィルター インターフェイス定義 publicinterfaceFilter{//初期化メソッド。ライフサイクル全体で 1 回だけ実行されます。 //initメソッドが正常に実行されるまで(例外スローなどの失敗)、フィルタリングサービスは提供できません。 // パラメータ FilterConfig は、初期化パラメータを取得するために使用されます publicvoidinit(FilterConfigfilterConfig)throwsServletException;//

注 1. Lambda パラメータが true 値を生成する場合、フィルター (ブール値の結果を生成できる Lambda) は要素を生成します; 2. false が生成されると、この要素は使用されなくなります。リスト コレクションを作成する例: ListstringCollection=newArrayList();stringCollection.add("ddd2");stringCollection.add("aaa2");stringCollection.add("bbb1");stringC

CSS 視覚プロパティの分析: box-shadow、text-shadow、filter はじめに: Web デザインおよび開発では、CSS を使用して要素にさまざまな視覚効果を追加できます。この記事では、CSS の box-shadow、text-shadow、filter の 3 つの重要なプロパティに焦点を当て、その使用法や効果の表示も含めて説明します。以下では、これら 3 つのプロパティを詳細に分析します。 1.box-shadow (ボックスシャドウ) box-shado

まず、統合アクセス URL インターセプト用のフィルターを定義します。コードは次のとおりです: publicclassUrlFilterimplementsFilter{privateLoggerlog=LoggerFactory.getLogger(UrlFilter.class);@OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{H

CSS ファジー プロパティの詳細な説明: filter および background-filter はじめに: Web ページをデザインするとき、ページの視覚的な魅力を高めるためにいくつかの特殊効果が必要になることがよくあります。ブラー効果は一般的な特殊効果の 1 つです。 CSS には、filter と background-filter という 2 つのぼかし属性が用意されており、それぞれ要素のコンテンツと背景のコンテンツをぼかすために使用されます。この記事では、これら 2 つのプロパティについて詳しく説明し、具体的なコード例をいくつか示します。 1.フィルター

Java8 のオプション クラス: filter() メソッドを使用して null の可能性のある値をフィルタリングする方法 Java8 では、Optional クラスは、null の可能性のある値をより適切に処理し、NullPointerException の発生を回避できる非常に便利なツールです。 Optional クラスには、潜在的な null 値を操作するためのメソッドが多数用意されています。重要なメソッドの 1 つは filter() です。 filter() メソッドの機能は、オプションが

Vue でフィルターを使用してデータをフォーマットおよび処理する Vue では、フィルターを使用してデータをフォーマットおよび処理できます。 Filter はテンプレート内で直接呼び出すことができる関数で、表示するデータを処理し、処理結果を返すことができます。この記事では、フィルターを使用してデータをフォーマットおよび処理する方法を紹介し、具体的なコード例を示します。フィルターの登録 Vue インスタンスでは、モデルで使用できるように最初にフィルターを登録する必要があります。
