クロージャ実装関数に基づくPHP自己呼び出し(再帰的)サンプル解析

黄舟
リリース: 2023-03-06 06:02:01
オリジナル
1409 人が閲覧しました

この記事の例では、PHP がクロージャーに基づいて関数の自己呼び出し (再帰) を実装する方法を説明します。参考までに、以下のように共有します:

PHP クロージャーは一般的には使用されないかもしれませんが、場合によっては、再帰などの特定の関数を実装するために php クロージャーの使用を検討できます。ここでは、php クロージャーの使用について説明します。 recursion を実装します

//php闭包实现函数的自调用,也就是实现递归
function closure($n,$counter,$max){
  //匿名函数,这里函数的参数加&符号是,引址调用参数自己
  $fn = function (&$n,&$counter,&$max=1) use(&$fn){//use参数传递的是函数闭包函数自身
    $n++;
    if($n < $max){//递归点,也就是递归的条件
      $counter .=$n.&#39;<br />&#39;;
      //递归调用自己
      $fn($n,$counter,$max);
    }
    return $counter;
  };//记得这里必须加``;``分号,不加分号php会报错,闭包函数
  /*
  *这里函数closure的返回值就是调用闭包的匿名函数
  *而闭包函数,引用closure函数传进来的参数
  */
  return $fn($n,$counter,$max);
}
echo (closure(0,&#39;&#39;,10));
ログイン後にコピー



これは、PHP クロージャを使用して再帰を実装する単純な関数です。実際、この関数を少し変更すると、無限分類などの多くの関数を実現できます。

内部のクロージャ関数に関しては、実際には、外部のクロージャパラメータを参照する必要はなく、クロージャの内部でクロージャ関数のパラメータを設定できます。

クロージャ関数はクロージャ関数内にあるため、クロージャ関数の値を返す必要はありません。クロージャ内に変数を設定してクロージャ関数に渡し、クロージャを使用して再帰的に取得できます。配列では、クロージャ関数が取得したものを返すために使用されます。したがって、クロージャ関数は取得したい値を持たないこともあります。

つまり、このクロージャー関数を使用して必要なことを達成し、必要なものを返すだけでよく、必ずしもクロージャー関数の戻り値から取得する必要はありません。


上記は、PHP のクロージャーベースの実装関数の自己呼び出し (再帰) サンプル分析の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!