Rumah pembangunan bahagian belakang tutorial php php回调函数的实现方法介绍(代码)

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

Oct 25, 2018 pm 04:37 PM
filter

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

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

回调函数实现

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

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

<?php
function trimString($value){
    return trim($value);
}
$args=array(
    &#39;options&#39;=>&#39;trimString&#39;,
);
var_dump(filter_var(&#39;abc &#39;,FILTER_CALLBACK,$args));
?>
Salin selepas log masuk

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

<?php
$args=array(
    &#39;options&#39;=>function ($value){return trim($value);},
);
var_dump(filter_var(&#39;abc &#39;,FILTER_CALLBACK,$args));
?>
Salin selepas log masuk

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

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

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

<?php
class TrimFilter{
    private $options=array();
    private $defaults=array(&#39;character_mask&#39;=>" \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(&#39;character_mask&#39;,$ops)){
            return trim($value,$ops[&#39;character_mask&#39;]);  
        }
        return trim($value);
    }
    
    function ltrimString($value){
        $ops=$this->get_options($this->defaults);
        if(key_exists(&#39;character_mask&#39;,$ops)){
            return ltrim($value,$ops[&#39;character_mask&#39;]);  
        }
        return ltrim($value);
    }
    
    function rtrimString($value){
        $ops=$this->get_options($this->defaults);
        if(key_exists(&#39;character_mask&#39;,$ops)){
            return rtrim($value,$ops[&#39;character_mask&#39;]);  
        }
         return rtrim($value);
    }
    
}

$trim_args=array(
    &#39;options&#39;=>array(
        new TrimFilter(array(&#39;character_mask&#39;=>" a")),TRIMSTRING
    )
);
$ltrim_args=array(
    &#39;options&#39;=>array(
        new TrimFilter(array(&#39;character_mask&#39;=>" a")),LTRIMSTRING
    )
);
$rtrim_args=array(
    &#39;options&#39;=>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));
?>
Salin selepas log masuk


Atas ialah kandungan terperinci php回调函数的实现方法介绍(代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan ralat '[Vue warn]: Gagal menyelesaikan penapis'. Bagaimana untuk menyelesaikan ralat '[Vue warn]: Gagal menyelesaikan penapis'. Aug 19, 2023 pm 03:33 PM

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

Apakah prinsip dan kaedah pendaftaran penapis dalam Springboot Apakah prinsip dan kaedah pendaftaran penapis dalam Springboot May 11, 2023 pm 08:28 PM

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;//

Bagaimana untuk menapis dalam java Bagaimana untuk menapis dalam java Apr 18, 2023 pm 11:04 PM

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

Bagaimana untuk menyepadukan Penapis dalam SpringBoot2 Bagaimana untuk menyepadukan Penapis dalam SpringBoot2 May 16, 2023 pm 02:46 PM

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 Analisis sifat visual CSS: bayangan kotak, bayangan teks dan penapis Oct 20, 2023 pm 12:51 PM

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 Penjelasan terperinci tentang sifat kabur CSS: penapis dan penapis latar belakang Oct 20, 2023 pm 04:48 PM

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 Java 8: Bagaimana untuk menapis kemungkinan nilai nol menggunakan kaedah penapis(). Kelas pilihan dalam Java 8: Bagaimana untuk menapis kemungkinan nilai nol menggunakan kaedah penapis(). Aug 01, 2023 pm 05:27 PM

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

Cara menggunakan penapis untuk memformat dan memproses data dalam Vue Cara menggunakan penapis untuk memformat dan memproses data dalam Vue Oct 15, 2023 pm 03:50 PM

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

See all articles