この記事は、PHP で匿名関数を使用するためのテクニック (コード付き) をまとめたものです。一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。
php の匿名関数 (クロージャー関数とも呼ばれます) を使用すると、名前なしで関数を指定できます。無名関数を変数に割り当て、変数を通じて呼び出します。簡単な例:
<?php $anonymousFunc = function($username){ echo $username; }; $anonymousFunc("乔峰!");
ヒント 1: 無名関数を配置します。通常の関数では、匿名関数も返すことができるため、単純なクロージャを形成します。
#<?php function closureFunc(){ $anonymousFunc = function(){ echo "乔峰!"; }; $anonymousFunc();//普通函数内部调用了匿名函数 } closureFunc();//输出: 乔峰
「匿名関数でのローカル変数の参照」のヒント 2 (ここでは、PHP キーワードを引用する必要があります。)
<?php function closureFunc(){ $username = '乔峰'; $anonymousFunc = function() use($username){ echo $username; }; $anonymousFunc();//此处调用了匿名函数 } closureFunc();//输出: 乔峰
ヒント 3 通常の関数で匿名を返す Function
<?php function closureFunc(){ $username = '乔峰'; $anonymousFunc = function() use($username){ echo $username; }; return $anonymousFunc;// 函数返回匿名函数 } $func = closureFunc(); $func(); //然后调用$func()
ヒント 4 無名関数を返し、無名関数にパラメータを渡す
<?php function closureFunc(){ $username = '乔峰'; $anonymousFunc = function($lover,$skill) use($username){ echo $username.$lover.$skill; }; return $anonymousFunc; } $func = closureFunc(); $func("阿朱","擒龙手");//乔峰阿朱擒龙手
ヒント 5 コンテキストが参照する変数の値を変更するにはクロージャを使用する
<?php function closureFunc(){ $number = 100; $anonymousFunc = function() use($number) { $number++; echo $number.PHP_EOL; }; echo $number.PHP_EOL; return $anonymousFunc; } $func = closureFunc();// 这里输出1,直接调用本函数的 echo $number.PHP_EOL; 即为100 $func();// 调用函数的返回值 $anonymousFunc $number++ 即为101 $func(); //101 $func();//101
上記の入力結果から、次の 2 つの func() が実行されることがわかります。両方とも 101 を返します。値は変更されていません。効果を蓄積したい場合は、& 参照記号を追加して (匿名関数内の変更は外部変数にも影響します)、それを変更します:
<?php function closureFunc(){ $number = 100; $anonymousFunc = function() use(&$number) { $number++; echo $number.PHP_EOL; }; echo $number.PHP_EOL; return $anonymousFunc; } $func = closureFunc();// 这里输出1,直接调用本函数的 echo $number.PHP_EOL; 即为100 $func();// 调用函数的返回值 $anonymousFunc $number++ 即为101 $func(); //102 $func();//103
ヒント 6 匿名関数をパラメータとして渡す
<?php //定义普通函数,anonymousFunc 为参数变量 function myFunc($anonymousFunc){ $anonymousFunc("乔峰"); } myFunc(function($username){ //这里调用普通函数,并把 匿名函数作为参数 传给了myFunc中的$anonymousFunc echo $username; });//输出 乔峰
以上がPHP で匿名関数を使用するテクニックのまとめ (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。