Detailed explanation of callback functions and anonymous functions in PHP

小云云
Release: 2023-03-20 12:04:02
Original
1333 people have browsed it

Some functions such as call_user_func() or usort() can accept user-defined callback functions as parameters. The callback function can not only be a simple function, but also an object method, including static class methods.
To put it simply, the parameters of a function are also a function.

Anonymous function definition:

Anonymous functions (Anonymous functions), also called closures, allow temporary creation of a function without a specified name. The value most commonly used as a callback function argument. Of course, there are other applications as well.
Simply put, it is a function without a function name

<?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();
Copy after login

Related recommendations:

Analysis of PHP callback function

javascript The meaning of the callback function

Detailed explanation of the usage of the callback function of the php custom function

The above is the detailed content of Detailed explanation of callback functions and anonymous functions in PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template