ホームページ  >  記事  >  バックエンド開発  >  PHP 匿名関数を 5 分で理解する (詳細な例)

PHP 匿名関数を 5 分で理解する (詳細な例)

WBOY
WBOYオリジナル
2021-10-15 16:02:494026ブラウズ

前回は「PHPコールバック関数の使い方(具体例)」をご紹介しましたが、この記事ではPHPのコールバック関数に関する知識を詳しく紹介しています。 PHP 関数の基本的な匿名関数と、注意を払う価値のある知識ポイントについて説明します。皆さんのお役に立てれば幸いです!

PHP 匿名関数を 5 分で理解する (詳細な例)

PHP 匿名関数

匿名関数とは何ですか?

匿名関数はクロージャ関数とも呼ばれます。

クロージャとは何ですか?クロージャは、自由変数を持つことができるコード ブロックです。これらの変数は、このコード内や他の場所でグローバルに定義されるのではなく、コード ブロックが定義されている環境、つまりローカル変数で定義されます。 「クロージャ」という言葉は、実行されるコードのブロックと、自由変数のバインドを提供する計算環境の組み合わせに由来しています。自由変数はコード ブロック内に含まれるため、これらの自由変数とそれらが参照するオブジェクトは解放されません。実際、平たく言えば、子関数は親関数のローカル変数を使用できます。この動作はクロージャと呼ばれます。理論的には、クロージャと匿名関数は別の概念ですが、PHP では同じ概念として扱われ、クロージャと言えば匿名関数、匿名関数と言えばクロージャとなります。

つまり、関数名のない関数です。 PHP では名前のない関数を作成でき、匿名関数は主にコールバック関数で使用されます。

匿名関数は、割り当てられた値を変数に直接割り当てることができます。匿名関数は依然として関数です。パラメータを渡して、割り当てられた値を変数に直接割り当てることができます。変数の呼び出しは関数と呼ばれます。

匿名変数を作成する構文構造は次のとおりです:

function (参数列表) {
    ...
}

匿名関数は通常の関数とよく似ています。戻り値を持つことができ、パラメータも受け入れることができます。違いは次のとおりです。匿名関数は宣言時に関数名を省略します。

例は次のとおりです:

<?php
    $a = function (){
        return &#39;好好学习,天天向上&#39;;
    };
    echo $a();
?>

出力結果:

PHP 匿名関数を 5 分で理解する (詳細な例)

上記の例からわかるように、匿名関数を使用する 変数の値を使用する このとき、PHP はこの式を組み込みクラス式に自動的に変換します 変数にクロージャを代入する方法は、通常の変数代入構文と同じです。最後に「;」(セミコロン)を付けます。

次に、2 つの結合された匿名関数を見てみましょう

  • 変数関数の匿名関数

<?php
$a = function($b)
{
 echo $b.&#39;好好学习&#39;;
};
$a(&#39;福如东海&#39;);
$a(&#39;寿比南山&#39;);
?>

出力結果:

PHP 匿名関数を 5 分で理解する (詳細な例)

#上記例の関数本体には関数名がなく、$a と括弧で呼び出される変数関数式の無名関数です。

  • #コールバック スタイルの匿名関数

#実際の使用では、匿名関数は関数またはメソッド コールバックの使用は、コールバック関数だけでなく、匿名関数も多くの PHP 関数で使用されます。サンプル コードは次のとおりです:


<?php
    $a   = [1,2,3,4,5,6];
    $b = array_map(function ($c) {
        return $c*$c;
    }, $a);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    print_r($b);
?>

出力結果:


PHP 匿名関数を 5 分で理解する (詳細な例)

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHP 匿名関数を 5 分で理解する (詳細な例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。