>백엔드 개발 >PHP 튜토리얼 >PHP의 콜백 함수 및 익명 함수에 대한 자세한 설명

PHP의 콜백 함수 및 익명 함수에 대한 자세한 설명

小云云
小云云원래의
2018-02-24 14:44:291350검색

call_user_func() 또는 usort()와 같은 일부 함수는 사용자 정의 콜백 함수를 매개변수로 받아들일 수 있습니다. 콜백 함수는 단순한 함수일 뿐만 아니라 정적 클래스 메서드를 포함한 객체 메서드일 수도 있습니다.
간단히 말해서, 함수의 매개변수도 함수입니다.

익명 함수 정의:

클로저라고도 불리는 익명 함수를 사용하면 지정된 이름 없이 일시적으로 함수를 만들 수 있습니다. 콜백 함수 인수로 가장 일반적으로 사용되는 값입니다. 물론 다른 응용 프로그램도 있습니다.
쉽게 말하면 함수명이 없는 함수입니다

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

관련 추천 :

PHP 콜백 함수 분석

자바스크립트 콜백 함수의 의미

PHP의 콜백 함수 사용법에 대한 자세한 설명 맞춤 기능

위 내용은 PHP의 콜백 함수 및 익명 함수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.