クロージャとは何ですか?クロージャは、他の関数の内部変数を読み取ることができる関数です。たとえば、JavaScript では、関数内のサブ関数のみがローカル変数を読み取ることができるため、クロージャは「関数内で定義された関数」として理解できます。本質的に、クロージャは関数の内部と関数の外部を接続するブリッジです。この記事では PHP のクロージャに焦点を当てます。
1. クロージャ関数は匿名関数とも呼ばれ、名前が指定されていない関数で、一般にコールバック部分で使用されます。 2. クロージャはコールバックとして使用されます 基本的な使用法、echo preg_replace_callback('~-([a-z])~'、function ($match) {
return strtoupper($match[1]);
} , 'hello-world');
3 番目のパラメータは照合するターゲット文字列で、2 番目のパラメータは匿名関数です。preg_replace_callback が実行されると、匿名関数が返されます。コールバックされ、一致する結果が匿名関数のパラメータとして渡されます
3. クロージャ関数の変数割り当ての使用 $greet = function($name)
{ printf("Hello %s \r\n", $name); };$greet('World');
クロージャー関数は変数に割り当てられます。関数を実行するには、この変数のすぐ後に () 括弧が続きます。括弧内のパラメータは、クロージャ関数の内側の Go に渡されます。
4. クロージャ関数は、親スコープ $message = 'hello';$example = function () use ($message) から変数の使用を継承します。 ) { var_dump($message);
use キーワードを使用して、関数の外にある親スコープの変数を関数に渡します。 5. クロージャ関数の変数代入 () で関数を実行します。パラメータを渡す use() キーワード 親関数を渡す ドメイン変数 $message="taoshihan";$example = function ($arg) use ($message) { var_dump($arg . ' ' . $message);
} ;$example("hello"); // 出力文字列(15) "hello taoshihan"
以上がPHP のクロージャーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。