2011-07-04 8 views
1

PHPでこのような関数をどのように宣言できますか?PHPで関数javascriptを同様に宣言していますか?

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(); 
+0

これは、使用しているPHPのバージョンによって異なります。どちらですか? 5.3の –

+0

を参照してください:http://php.net/manual/en/functions.anonymous.php – ldg

+0

あなたは何をしようとしていますか?互換性の問題があるため、これを使用することはお勧めしません。しかし、それを互換性のあるものにするための恐ろしい方法があります... 'create_function()' – phant0m

答えて

3

このようにすることができます。あなたのクラスにを入れるだけです。

特別な理由がない限り、関数を変数に定義するのは、デバッグが難しいため、実践的ではありません。

2

これは、匿名の機能(クロージャ)を導入するPHP 5.3以降で可能です。 manual explaing themを参照してください。

関連する問題