closure匿名函数

function createGreeter($who) {
    return function() use ($who) {
      echo "Hello $who";
    };
}

$greeter = createGreeter("World");
$greeter(); // Hello World
$f = function () {
return 100;
};
function B(Closure $callback)
{
return $callback();
}
$a = B($f);
print_r($a);//输出100

callFunc.php :

<?php
namespace App;

class Container 
{
    protected $instance;
    protected $closure;

    public function __contruct() {
    }

    public function alarm() {
        echo 'container class alarm <br/>';
    } 

    public function bind($func, $closure) {
        $this->closure[$func] = $closure;
    }

    public function done($func, $arg) {
        $closure = $this->closure[$func];
        $closure($arg);
    }
}

classTest.php :

<?php
//定义域
require 'callFunc.php';
use App\Container;

ini_set('display_errors' , 1);
echo 'display class name ' . App\Container::class . '<br/>';

$container = new Container();
$container->alarm();

//闭包
$container->bind('walk', function($arg) {
    echo 'to walk, ' . $arg . '<br/>';
});

$container->bind('run', function($arg) {
    echo 'to run ' . $arg . '<br/>';
});

$container->bind('jump', function($arg) {
    echo 'to jump ' . $arg . '<br/>';
});

$container->done('walk', 'vitoria');
$container->done('run', 'vitoria');
$container->done('jump', 'vitoria');

测试样例