匿名関数 (匿名関数) はクロージャとも呼ばれ、指定された名前なしで関数を一時的に作成できます。ほとんどの場合、callback function(callback) パラメーターの値として使用されます。もちろん、他のアプリケーションもあります。
匿名関数は現在、Closure クラスを通じて実装されています。
クロージャ関数は変数の値としても使用できます。 PHP は、この 式 を組み込みクラス Closure のオブジェクト インスタンスに自動的に変換します。クロージャオブジェクトを変数に代入する方法は通常の変数代入の構文と同じで、最後にセミコロンを追加する必要があります:
この記事では主にPHPにおけるクロージャ(匿名関数)の簡単な分析を紹介しますこの記事では、使用例と実行効率のテストを示します。必要な方は、
使用方法を参照してください。integer
group要素の値を調整する必要があります$data = range(0, 100);//想要每个元素的值都加上.html的后缀 $suffix = '.html'; function makeSuffix($str, $suffix) { return $str . $suffix; } $new_data = array_map(function($item) use ($suffix) { return makeSuffix($item, $suffix); }, $data);
のコードは次のとおりです: $arr = [
[
'id'=>'',
'name'=>'',
'create_time'=>'',
],
];
$new_data = array_map(function($item) {
return ['id'=>$item['id'],'name'=>$item['name']];
}, $arr);
//
を使用している場合は、
ループでゼロ時間変数を作成する必要もあります。この変数に必要な値を代入します実行効率
コードは次のとおりです:$data = range(0, 50000)
//1
foreach ($data as &$value) {
$value = makeSuffix($value, $suffix);
}
//2
foreach ($data as $value) {
$new[] = makeSuffix($value, $suffix);
}
//3
array_map(function($item) use ($suffix) {
return makeSuffix($item, $suffix);
}, $data);
5Wの実行後、結果1〜3から、ほとんどの場合、実行時間は順番に増加します。実行結果時間は次のとおりです
1:0.0260009765625 2:0.038002014160156 3:0.047003030776978
Closed パッケージのコードは比較的エレガントですが、ロジックは混乱しやすく、実行効率は比較的低くなります他の方法と同様であるため、使用には注意が必要です。コード構造が複雑でカプセル化する必要がある場合に使用することをお勧めします。
以上がPHPの匿名関数の簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。