Heim Backend-Entwicklung PHP-Tutorial Einführung in die Implementierungsmethode der PHP-Rückruffunktion (Code)

Einführung in die Implementierungsmethode der PHP-Rückruffunktion (Code)

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));
?>
Nach dem Login kopieren

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

<?php
$args=array(
    &#39;options&#39;=>function ($value){return trim($value);},
);
var_dump(filter_var(&#39;abc &#39;,FILTER_CALLBACK,$args));
?>
Nach dem Login kopieren

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

<?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));
?>
Nach dem Login kopieren

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

<?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));
?>
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonEinführung in die Implementierungsmethode der PHP-Rückruffunktion (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So beheben Sie den Fehler „[Vue-Warnung]: Fehler beim Auflösen des Filters'. So beheben Sie den Fehler „[Vue-Warnung]: Fehler beim Auflösen des Filters'. Aug 19, 2023 pm 03:33 PM

Methoden zur Behebung des Fehlers „[Vuewarn]:Failedtoresolvefilter“ Während des Entwicklungsprozesses mit Vue stoßen wir manchmal auf eine Fehlermeldung: „[Vuewarn]:Failedtoresolvefilter“. Diese Fehlermeldung tritt normalerweise auf, wenn wir in der Vorlage einen undefinierten Filter verwenden. In diesem Artikel wird erläutert, wie dieser Fehler behoben werden kann, und es werden entsprechende Codebeispiele aufgeführt. Wenn wir in Vue sind

Was ist das Prinzip und die Registrierungsmethode des Filters in Springboot? Was ist das Prinzip und die Registrierungsmethode des Filters in Springboot? May 11, 2023 pm 08:28 PM

1. Filter Sehen Sie sich zunächst den Standort des Filters auf dem Webserver an. Filter ist eine Kette, die vorher und nachher verbunden ist. Nachdem die vorherige Verarbeitung abgeschlossen ist, wird sie zur Verarbeitung an den nächsten Filter übergeben. 1.1Filterschnittstellendefinition publicinterfaceFilter{//Initialisierungsmethode, die im gesamten Lebenszyklus nur einmal ausgeführt wird. //Filterdienste können erst bereitgestellt werden, wenn die Init-Methode erfolgreich ausgeführt wurde (Fehler wie das Auslösen einer Ausnahme usw.). //Der Parameter FilterConfig wird verwendet, um den Initialisierungsparameter abzurufen publicvoidinit(FilterConfigfilterConfig)throwsServletException;//

So integrieren Sie Filter in SpringBoot2 So integrieren Sie Filter in SpringBoot2 May 16, 2023 pm 02:46 PM

Definieren Sie zunächst einen Filter für das Abfangen von Unified Access-URLs. Der Code lautet wie folgt: publicclassUrlFilterimplementsFilter{privateLoggerlog=LoggerFactory.getLogger(UrlFilter.class);@OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{H

So filtern Sie in Java So filtern Sie in Java Apr 18, 2023 pm 11:04 PM

Hinweis 1. Wenn der Lambda-Parameter einen wahren Wert generiert, generiert der Filter (Lambda, der ein boolesches Ergebnis generieren kann) ein Element 2. Wenn ein falscher Wert generiert wird, wird dieses Element nicht mehr verwendet. Beispiel zum Erstellen einer Listensammlung: ListstringCollection=newArrayList();stringCollection.add("ddd2");stringCollection.add("aaa2");stringCollection.add("bbb1");stringC

Analyse visueller CSS-Eigenschaften: Box-Shadow, Text-Shadow und Filter Analyse visueller CSS-Eigenschaften: Box-Shadow, Text-Shadow und Filter Oct 20, 2023 pm 12:51 PM

Analyse der visuellen CSS-Eigenschaften: Box-Shadow, Text-Shadow und Filter Einführung: Im Webdesign und in der Webentwicklung kann CSS verwendet werden, um Elementen verschiedene visuelle Effekte hinzuzufügen. Dieser Artikel konzentriert sich auf die drei wichtigen Eigenschaften von Box-Shadow, Text-Shadow und Filter in CSS, einschließlich ihrer Verwendung und Effektanzeige. Im Folgenden analysieren wir diese drei Eigenschaften im Detail. 1. Box-Shado (Box-Shado) Box-Shado

Detaillierte Erläuterung der CSS-Unschärfeeigenschaften: Filter und Hintergrundfilter Detaillierte Erläuterung der CSS-Unschärfeeigenschaften: Filter und Hintergrundfilter Oct 20, 2023 pm 04:48 PM

Detaillierte Erläuterung der CSS-Fuzzy-Eigenschaften: Filter und Hintergrundfilter Einführung: Beim Entwerfen von Webseiten benötigen wir häufig einige Spezialeffekte, um die visuelle Attraktivität der Seite zu erhöhen. Der Unschärfeeffekt ist einer der häufigsten Spezialeffekte. CSS bietet zwei Unschärfeattribute: Filter und Hintergrundfilter, die zum Unschärfen von Elementinhalten bzw. Hintergrundinhalten verwendet werden. In diesem Artikel werden diese beiden Eigenschaften ausführlich erläutert und einige konkrete Codebeispiele bereitgestellt. 1. Filter

Optionale Klasse in Java 8: So filtern Sie mögliche Nullwerte mit der Methode filter() Optionale Klasse in Java 8: So filtern Sie mögliche Nullwerte mit der Methode filter() Aug 01, 2023 pm 05:27 PM

Optionale Klasse in Java8: So verwenden Sie die filter()-Methode, um möglicherweise Nullwerte zu filtern. In Java8 ist die optionale Klasse ein sehr nützliches Werkzeug, das es uns ermöglicht, möglicherweise Nullwerte besser zu verarbeiten und das Auftreten von NullPointerException zu vermeiden. Die optionale Klasse bietet viele Methoden zum Bearbeiten potenzieller Nullwerte. Eine der wichtigen Methoden ist filter(). Die Funktion der filter()-Methode ist die if-Option

So verwenden Sie Filter zum Formatieren und Verarbeiten von Daten in Vue So verwenden Sie Filter zum Formatieren und Verarbeiten von Daten in Vue Oct 15, 2023 pm 03:50 PM

Verwenden Sie Filter, um Daten in Vue zu formatieren und zu verarbeiten. In Vue können wir Daten mithilfe von Filtern formatieren und verarbeiten. Filter ist eine Funktion, die direkt in der Vorlage aufgerufen werden kann. Sie kann die anzuzeigenden Daten verarbeiten und die verarbeiteten Ergebnisse zurückgeben. In diesem Artikel stellen wir die Verwendung von Filtern zum Formatieren und Verarbeiten von Daten vor und stellen spezifische Codebeispiele bereit. Filter registrieren In der Vue-Instanz müssen wir zuerst einen Filter registrieren, damit er im Modell verwendet werden kann

See all articles