2017-03-23 5 views
1

クラスを匿名関数に渡さない方法はありますか?

class Foo{ 

    public function bar(){ 
    $data = [ 
     'calculation' => function(){ 
      // I don't want $this to be passed into here 
     } 
    ]; 
    } 
} 

匿名機能から$ thisを除外できますか?

答えて

2

$thisの値を使用しない場合は、static anonymous functionが必要です。

class Foo{ 
    public function bar(){ 
    $data = [ 
     'calculation' => static function(){ 
      // $this is not defined 
     } 
    ]; 
    } 
} 

静的な匿名関数は自動的にバインドされ$this値を持っていないと、彼らは、後にバインドされた別の値を持つことはできません。

関連する問題