PHPクロージャ内で$ thisを使用する方法は?

jcubic

私はこのようなコードを持っています:

class Foo {
   var $callbacks = array();
   function __construct() {
      $this->callbacks[] = function($arg) {
         return $this->bar($arg);
      };
   }
   function bar($arg) {
      return $arg * $arg;
   }
}

クロージャ内で$ thisを使用したいのですが、追加しようとしましたuse ($this)が、このスローエラーは次のとおりです。

Cannot use $this as lexical variable
シャルロットデュノワ

$thisこれは、クラスインスタンス自体への参照内のクラスの明示的な予約変数であるため、使用できませんにコピーを作成し$this、それをuse言語構造に渡します。

class Foo {
   var $callbacks = array();
   function __construct() {
      $class = $this;
      $this->callbacks[] = function($arg) use ($class) {
         return $class->bar($arg);
      };
   }
   function bar($arg) {
      return $arg * $arg;
   }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PHPのクロージャで$ thisを使用する方法

分類Dev

PHPのクロージャ関数で変数を使用する方法は?

分類Dev

クロージャphp内の値を取得する方法

分類Dev

GroovyのreplaceFirstをクロージャーで使用する方法は?

分類Dev

PHPでクロージャをキャッシュする方法

分類Dev

クロージャ内でプロトタイプを作成する方法は?

分類Dev

クロージャー内でmagrittrパイプを使用する

分類Dev

クロージャの内側からcontinueを使用するRustの方法は何ですか?

分類Dev

PHP 5.3のクロージャ内で$ thisの回避策はありますか?

分類Dev

匿名クロージャは、明示的な引数を持つクロージャ内では使用できません

分類Dev

VBA-同じマクロ内でプロシージャをループする方法は?

分類Dev

クロージャなしでsetTimeout内でjQueryメンバー関数を実行する方法は?

分類Dev

他のクロージャでのPHPクロージャ:「使用」の範囲

分類Dev

プロシージャ内の選択クエリで現在のカーソル値を使用する方法

分類Dev

AngularJSでJavaScriptクロージャを実装する方法は?

分類Dev

LuaDocでクロージャを文書化する方法は?

分類Dev

ジャージー2.8でジャクソンを使用する方法は?

分類Dev

grailsプロジェクトでFindall(クロージャ)を使用する方法

分類Dev

キャプチャした変数をクロージャ内のクロージャに移動するにはどうすればよいですか?

分類Dev

クロージャJavaScript内で変数を割り当てる

分類Dev

ストアドプロシージャクエリ内で変数を定義する方法は?

分類Dev

setTimeoutはクロージャ内の関数で使用できますか?

分類Dev

クロージャ内で作成されたイベントでクロージャ関数を呼び出す

分類Dev

ローカルクロージャ内で非エスケープクロージャを呼び出す方法は?

分類Dev

クロージャは「with」内では機能しません

分類Dev

プロシージャMYSQL内で変数を宣言する方法

分類Dev

RxSwiftでクロージャを使用してコンプリートをチェーンする方法は?

分類Dev

角度モジュール実行ブロック内でコードをジャスミンする方法

分類Dev

JavaScriptクロージャーとPHPクロージャーの違いは何ですか?

Related 関連記事

  1. 1

    PHPのクロージャで$ thisを使用する方法

  2. 2

    PHPのクロージャ関数で変数を使用する方法は?

  3. 3

    クロージャphp内の値を取得する方法

  4. 4

    GroovyのreplaceFirstをクロージャーで使用する方法は?

  5. 5

    PHPでクロージャをキャッシュする方法

  6. 6

    クロージャ内でプロトタイプを作成する方法は?

  7. 7

    クロージャー内でmagrittrパイプを使用する

  8. 8

    クロージャの内側からcontinueを使用するRustの方法は何ですか?

  9. 9

    PHP 5.3のクロージャ内で$ thisの回避策はありますか?

  10. 10

    匿名クロージャは、明示的な引数を持つクロージャ内では使用できません

  11. 11

    VBA-同じマクロ内でプロシージャをループする方法は?

  12. 12

    クロージャなしでsetTimeout内でjQueryメンバー関数を実行する方法は?

  13. 13

    他のクロージャでのPHPクロージャ:「使用」の範囲

  14. 14

    プロシージャ内の選択クエリで現在のカーソル値を使用する方法

  15. 15

    AngularJSでJavaScriptクロージャを実装する方法は?

  16. 16

    LuaDocでクロージャを文書化する方法は?

  17. 17

    ジャージー2.8でジャクソンを使用する方法は?

  18. 18

    grailsプロジェクトでFindall(クロージャ)を使用する方法

  19. 19

    キャプチャした変数をクロージャ内のクロージャに移動するにはどうすればよいですか?

  20. 20

    クロージャJavaScript内で変数を割り当てる

  21. 21

    ストアドプロシージャクエリ内で変数を定義する方法は?

  22. 22

    setTimeoutはクロージャ内の関数で使用できますか?

  23. 23

    クロージャ内で作成されたイベントでクロージャ関数を呼び出す

  24. 24

    ローカルクロージャ内で非エスケープクロージャを呼び出す方法は?

  25. 25

    クロージャは「with」内では機能しません

  26. 26

    プロシージャMYSQL内で変数を宣言する方法

  27. 27

    RxSwiftでクロージャを使用してコンプリートをチェーンする方法は?

  28. 28

    角度モジュール実行ブロック内でコードをジャスミンする方法

  29. 29

    JavaScriptクロージャーとPHPクロージャーの違いは何ですか?

ホットタグ

アーカイブ