Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Callback-Funktionen und anonymen Funktionen in PHP

Detaillierte Erläuterung der Callback-Funktionen und anonymen Funktionen in PHP

小云云
小云云Original
2018-02-24 14:44:291325Durchsuche

Einige Funktionen wie call_user_func() oder usort() können benutzerdefinierte Callback-Funktionen als Parameter akzeptieren. Die Rückruffunktion kann nicht nur eine einfache Funktion sein, sondern auch eine Objektmethode, einschließlich statischer Klassenmethoden.
Vereinfacht ausgedrückt sind die Parameter einer Funktion auch eine Funktion.

Anonyme Funktionsdefinition:

Anonyme Funktionen, auch Abschlüsse genannt, ermöglichen es Ihnen, vorübergehend eine Funktion ohne angegebenen Namen zu erstellen. Der Wert, der am häufigsten als Callback-Funktionsargument verwendet wird. Natürlich gibt es auch andere Anwendungen.
Einfach ausgedrückt handelt es sich um eine Funktion ohne Funktionsnamen

<?phpclass Product{
    public $name;    public $price;    //存储各种回调函数
    private $callbacks;    public function __construct($name,$price)
    {
        $this->name=$name;        $this->price=$price;
    }    //注册回调函数
    function registerCallBack($callback)
    {
        $this->callbacks[]=$callback;
    }    //执行回调函数
    function sale()
    {
        echo "$this->name 开始执行促销信息 $this->price \n";        foreach($this->callbacks as $callback)
        {            //执行回调函数
            $this->price=call_user_func($callback,$this->name,$this->price);
        }        echo "$this->name 促销执行完毕 $this->price \n";
    }
}//提供回调函数class Sale{
    function sale1(){
        //返回匿名函数 各种促销
        return function($name,$price){
            $price-=5;            echo "$name 美女,减5元 变为 $price\r\n";            return $price;
        };
    }    function sale2(){
        return function($name,$price){
            $price-=3;        echo "$name 随便卖,减3元 变为 $price \r\n";            return $price;
        };
    }

}$p=new Product("足球",50);$sale =new Sale();$p->registerCallBack($sale->sale1());$p->registerCallBack($sale->sale2());$p->sale();

Verwandte Empfehlungen:

Analyse der PHP-Rückruffunktion

Die Bedeutung der Javascript-Rückruffunktion

Detaillierte Erläuterung der Verwendung der Rückruffunktion der benutzerdefinierten PHP-Funktion

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Callback-Funktionen und anonymen Funktionen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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