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)); ?>
Atas ialah kandungan terperinci php回调函数的实现方法介绍(代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas


![Bagaimana untuk menyelesaikan ralat '[Vue warn]: Gagal menyelesaikan penapis'.](https://img.php.cn/upload/article/000/887/227/169243040583797.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Kaedah untuk menyelesaikan ralat "[Vuewarn]:Failedtoresolvefilter" Semasa proses pembangunan menggunakan Vue, kadangkala kita menghadapi mesej ralat: "[Vuewarn]:Faildtoresolvefilter". Mesej ralat ini biasanya berlaku apabila kami menggunakan penapis yang tidak ditentukan dalam templat. Artikel ini menerangkan cara menyelesaikan ralat ini dan memberikan contoh kod yang sepadan. Apabila kita berada di Vue

1. Penapis Lihat dahulu lokasi penapis pelayan web. Penapis ialah rantai yang disambungkan sebelum dan selepas Selepas pemprosesan sebelumnya selesai, ia dihantar ke penapis seterusnya untuk diproses. 1.1Kaedah penapisan antara muka definisi publicinterfaceFilter{//Initialization, hanya dilaksanakan sekali dalam keseluruhan kitaran hayat. //Perkhidmatan penapisan tidak boleh disediakan sehingga kaedah init berjaya dilaksanakan (kegagalan seperti membuang pengecualian, dsb.). //Parameter FilterConfig digunakan untuk mendapatkan parameter permulaan publicvoidinit(FilterConfigfilterConfig)throwsServletException;//

Nota 1. Jika parameter Lambda menjana nilai benar, penapis (Lambda yang boleh menjana hasil boolean) akan menjana elemen 2. Apabila palsu dijana, elemen ini tidak akan digunakan lagi. Contoh untuk mencipta koleksi Senarai: ListstringCollection=newArrayList();stringCollection.add("ddd2");stringCollection.add("aaa2");stringCollection.add("bbb1");stringC

Mula-mula tentukan Penapis untuk pemintasan URL akses bersatu. Kodnya adalah seperti berikut: publicclassUrlFilterimplementsFilter{privateLoggerlog=LoggerFactory.getLogger(UrlFilter.class);@OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{H

Analisis sifat visual CSS: bayangan kotak, bayangan teks dan penapis Pengenalan: Dalam reka bentuk dan pembangunan web, CSS boleh digunakan untuk menambah pelbagai kesan visual pada elemen. Artikel ini akan menumpukan pada tiga sifat penting bayang-kotak, bayang-bayang teks dan penapis dalam CSS, termasuk paparan penggunaan dan kesannya. Di bawah ini kami menganalisis ketiga-tiga sifat ini secara terperinci. 1. box-shadow (bayang kotak) box-shadow

Penjelasan terperinci tentang sifat kabur CSS: penapis dan penapis latar belakang Pengenalan: Semasa mereka bentuk halaman web, kami sering memerlukan beberapa kesan khas untuk meningkatkan daya tarikan visual halaman. Kesan kabur adalah salah satu daripada kesan khas yang biasa. CSS menyediakan dua atribut kabur: penapis dan penapis latar belakang, yang digunakan untuk mengaburkan kandungan elemen dan kandungan latar belakang masing-masing. Artikel ini menerangkan kedua-dua sifat ini secara terperinci dan menyediakan beberapa contoh kod konkrit. 1. penapis

Kelas pilihan dalam Java8: Cara menggunakan kaedah penapis() untuk menapis kemungkinan nilai nol Dalam Java8, kelas Pilihan ialah alat yang sangat berguna yang membolehkan kami mengendalikan nilai mungkin nol dengan lebih baik dan mengelakkan berlakunya NullPointerException. Kelas Pilihan menyediakan banyak kaedah untuk memanipulasi nilai null yang berpotensi, salah satu kaedah penting ialah penapis(). Fungsi kaedah penapis() ialah jika Option

Vue menggunakan penapis untuk memformat dan memproses data Dalam Vue, kami boleh memformat dan memproses data dengan menggunakan penapis. Penapis ialah fungsi yang boleh dipanggil terus dalam templat Ia boleh memproses data untuk dipaparkan dan mengembalikan hasil yang diproses. Dalam artikel ini, kami akan memperkenalkan cara menggunakan penapis untuk memformat dan memproses data serta memberikan contoh kod khusus. Daftar penapis Dalam contoh Vue, kita perlu mendaftarkan penapis terlebih dahulu supaya ia boleh digunakan dalam model
