ホームページ  >  記事  >  バックエンド開発  >  ## PHP で再帰匿名関数を実装するにはどうすればよいですか?

## PHP で再帰匿名関数を実装するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-25 07:54:29283ブラウズ

## How Can You Implement Recursive Anonymous Functions in PHP?

PHP の匿名再帰関数

PHP では、ラムダ関数としても知られる匿名関数の概念が、次の関数を定義する便利な方法を提供します。正式な名前を指定せずに関数をインラインで実行します。ただし、再帰に関しては、匿名関数は特有の課題に直面します。

問題:

再帰的匿名関数を作成しようとすると、関数名が再帰に正しく渡されません。この問題は、定義された名前を持つ通常の関数とは異なり、匿名関数にはそれ自体への参照がないために発生します。

解決策:

この問題を解決するには、次のように渡す必要があります。 use ステートメント内の参照としての匿名関数。これは、次のコードに示すように、関数名の前にアンパサンド (&) を追加することで実現できます。

<code class="php">$factorial = function( $n ) use ( &amp;$factorial ) {
    if( $n <= 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};

print $factorial( 5 ); // Output: 120</code>

匿名関数を参照として渡すことで、再帰呼び出しと関数間の接続を確立します。元の関数定義を使用して、関数自身の内部状態にアクセスできるようにします。これにより、再帰が期待どおりに機能し、階乗値を正常に計算できるようになります。

以上が## PHP で再帰匿名関数を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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