在php中声明一个函数javascript一样?

时间:2011-07-04 19:52:07

标签: php

如何在php中声明这样的函数?

class Test {
    function __construct(){
        $this->method = function($var){ // <-- declaring a function javascript alike
            echo $var;
        };
    }

    function func(){
        if($this->method){
            $this->method('test');
        }
    }
}

$Test = new Test();
$Test->func();

3 个答案:

答案 0 :(得分:3)

你可以这样做。只需在您的班级中加public $method;

除非你有特殊的原因,否则在变量中定义函数是不好的做法,因为它可能很难调试。

答案 1 :(得分:2)

你可以从PHP 5.3开始,它引入了匿名函数(闭包)。请参阅manual explaing them

答案 2 :(得分:2)

PHP 5.3:http://php.net/manual/en/functions.anonymous.php PHP 5.2(丑陋的解决方案):http://php.net/manual/en/function.create-function.php

顺便说一下,我认为没有理由在你的代码中使用匿名函数。只需使用该功能保护方法。