小编mon*_*zee的帖子

关闭作为班级成员?

我喜欢jQuery/Javascript通过闭包扩展功能的方式.是否有可能在PHP 5.3中做类似的事情?

class Foo
{
    public $bar;
}

$foo = new Foo;
$foo->bar = function($baz) { echo strtoupper($baz); };
$foo->bar('lorem ipsum dolor sit amet');
// LOREM IPSUM DOLOR SIT AMET
Run Code Online (Sandbox Code Playgroud)

[编辑]在我的问题中混淆了'它'和'是'.嘿嘿.

UPDATE

我下载了5.3a3,它确实有效!

class Foo
{
    protected $bar;
    public $baz;

    public function __construct($closure)
    {
        $this->bar = $closure;
    }

    public function __call($method, $args)
    {
        $closure = $this->$method;
        call_user_func_array($closure, $args);
    }

}

$foo = new Foo(function($name) { echo "Hello, $name!\n"; });
$foo->bar('Mon'); 
// Hello, Mon!
$foo->baz = function($s) { echo strtoupper($s); }; …
Run Code Online (Sandbox Code Playgroud)

php closures

7
推荐指数
1
解决办法
3261
查看次数

标签 统计

closures ×1

php ×1