<?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