php はコールバック関数をサポートしています。これは、他の高級言語と比較してより多くのポイントを追加する機能です。ただし、php5.3 より前のコールバック関数の使用は、JavaScript に比べて柔軟性が低く、文字列 の関数名と create_function の戻り値 の 2 つのオプションしかありません。 php5.3 以降には、別のオプションがあります - 匿名関数、クロージャー関数 (クロージャー) とも呼ばれ、指定された名前なしで関数を一時的に作成でき、コールバック関数としてよく使用されます。パラメーターの値。もちろん、他のアプリケーションもあります。前の章では、php コールバック関数の詳細な使用法を詳しく紹介しました。この章では、php の匿名関数またはクロージャ カスタム関数について説明します。 ここでは、匿名またはクロージャのカスタム関数の例を示し、カスタム関数を宣言し、名前のない関数を変数に割り当てます。変数の直後にかっこを追加し、パラメータを渡して無名関数を呼び出して出力します。
匿名関数のサンプルコードは以下の通りです:
<?php /** 匿名或者闭包函数实例 */ $fun = function($a){ echo $a; //将一个没有名字的函数赋值给一个变量$fun }; $fun("php.cn"); //变量后加括号并传参数,调出匿名函数并输出 ?>匿名関数は変数の値としても使用できます。匿名関数をパラメータとしてコールバック関数に直接渡すのが、匿名関数の最も一般的な使用方法であり、最終的にはセミコロンを追加するのを忘れます。
コールバック関数を呼び出すときに匿名関数をパラメータとして受け取るコード例は次のとおりです:
<?php /** 申明函数callback,需要传递一个匿名函数作为参数 */ function callback($back){ echo $back(); //参数只有是一个函数时才能在这里调用 } callback(function(){ //调用函数的同时直接传入一个匿名函数 echo "闭包数据"; }); ?>クロージャの重要な概念は、外部変数を内部関数で使用できるということであり、クロージャは接続される必要があるということです。キーワード use を通して 関数と外部変数は、関数またはクラスの先頭で宣言する必要があります。クロージャ関数は親スコープから変数を継承します。これは、グローバル変数を使用する場合とは異なります。グローバル変数は、現在どの関数が実行されているかに関係なく、フルスコープに存在します。クロージャの親スコープはクロージャ関数を定義しますが、必ずしもそれを呼び出す関数を定義するわけではありません。
以下では、関数を宣言し、匿名関数をパラメータとして渡すクロージャの例も示します。ここでのパラメータは、関数の場合にのみ呼び出すことができます。キーワード。関数を呼び出すときに、匿名関数を直接渡します。
キーワード use を使用するコードは次のとおりです:
<?php /** 申明函数callback,需要传递一个匿名函数作为参数 */ function callback($back){ echo $back(); //参数只有是一个函数时才能在这里调用 } $var = "测试数据"; //闭包的一个重要概念就是内部函数中使用外部变量,通过 use 关键字实现 callback(function() use(&$var){ //调用函数的同时直接传入一个匿名函数 echo "闭包数据的:{$var}"; }); ?>注: 上記の例では、use によって参照される変数は $var のコピーです。完全に引用したい場合は、 & を追加する必要があります。 上の例のシンボルのように。
【おすすめ関連チュートリアル】
1.「php.cn Dugu Jiijian (4) - PHP ビデオチュートリアル
」2. ビデオチュートリアル: 匿名関数とクロージャーの実装: 関数式とクロージャー
以上がPHP関数における匿名関数とクロージャの実装の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。