
使用したプログラミング PHP ことができます。, 機会に, しなければならなかったとしてきたを使用 匿名の機能. 匿名関数は、関数で宣言されている、 独自のフロー コードを開発している、我々 が使用している関数であることを前提としての のみ その場所で, したがって、我々 は信じていないそれら離れて、 再利用.
通常, これらの関数としてを使用されます。 フロント の コールバック その他の機能または イベント, そんな彼らに治療をエンコード コールバック o イベント 必要があります。. この方法では, 開発を行うことができますか イベント指向プログラミング, 他の言語のより一般的です Java スクリプトの設定.
これまで Javascript でプログラムを作成した場合, 行うとき, たとえば, 関数の呼び出し setTimeout, それはパラメーターの 1 つが、 コールバック それが発生したときに実行する関数、 イベント.
1 | setTimeout( function() { console.log( 'test' ); }, 3000 ); |
同じ, で PHP 使用すると適切な場合もあります。 コールバック として 関数のパラメーター. その後、PHP の匿名関数の使用を参照してください。. 関数のパラメーターの 1 つが、あると仮定しましょう、 コールバック:
1 | nombre_funcion( $parametro1, $parametro2, $callback = '' ); |
パラメーターに $コールバック, 我々 が直接得ることができる、 関数の名前 実行するそれをしたいし、我々 が以前にある定義, いずれか, 直接、 匿名関数. 我々 は 2 つのフォームを参照してください。:
- 呼び出すことによって、 以前に定義された関数:
1 2 3 4 5 | function mi_funcion() { //código de mi_funcion } nombre_función ( $parametro1, $parametro2, 'mi_funcion' ); |
- 利用により、 匿名関数:
1 2 3 4 5 | nombre_funcion( $parametro1, $parametro2, function() { //código de la función anónima } ); |
匿名関数にパラメーターまたは変数を渡す方法
我々 を使うとき 匿名の機能, これらのコード内で, アクセスをしていません。 に、 変数 または以前に定義されているオブジェクト、 コードの流れ, ので、, それらのいくつかを参照してくださいする必要がある場合, いずれか 我々 はグローバルに, 我々 は彼らにアクセスを与えるか, 以下参照しなければなりません。:
仮定します、 前の例 いくつかの 前のコード 追加:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() { //Desde aquí no tengo acceso a la variable $aux } ); |
匿名関数内で アクセスをしていません。 変数を $aux 以前に定義されました。. この変数を使用するために, 我々 は次の方法でそれを行う必要があります。:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() use ( $aux ) { //Ahora sí que tenemos acceso a la variable $aux } ); |
追加します。, 関数識別子の後 関数(), 単語 使用して、 続いて, かっこ, 私たちにアクセスする変数, 私たちは 許可します。 から 匿名関数の内部 あります アクセス 変数を, どのような米国 できなくなります 宣言すること グローバル変数 関数内のステートメントをその後使用.
