php 闭包

<?php

$callback= function($callabled){

           return   function($args) use($callabled){

                    /*
                        此处的 $callabled,$args 能够 写成, array($callabled,$args);
                        此时, 则要求$callabled为一个类.
                    */
                    call_user_func($callabled,$args);
           };

};


function my_callback($argv)
{
        var_dump($argv);
}



$demo1  = $callback('my_callback');  var_dump($demo1);

$demo1('a');


// output


F:\cygwin64\home\Administrator\code\demo5.php:24:
class Closure#2 (2) {
  public $static =>
  array(1) {
    'callabled' =>
    string(11) "my_callback"
  }
  public $parameter =>
  array(1) {
    '$args' =>
    string(10) "<required>"
  }
}
F:\cygwin64\home\Administrator\code\demo5.php:19:
string(1) "a"

经过如上的代码,可以处理到的问题:php

1   若是有多个策略, 那么在策略不一样的时候, 调用不一样的函数, 来计算,闭包

2  参数后置的处理,  有时候, 计算某些问题的时候, 对具体的使用的参数不明朗,参数后置处理,函数

3  若是, 在闭包的位置使用了class的方式, 能够调用不一样的类的方法, ui

若是对js的闭包比较熟悉, 能够从如上的代码中看到js闭包的身影.code

相关文章
相关标签/搜索