検索
ホームページバックエンド開発PHPチュートリアルphp再帰関数の3つの実装方法とデジタル累積の実装方法、php recursion_PHPチュートリアル

PHP再帰関数の3つの実装方法とデジタル累積、PHP再帰の実装方法

再帰関数は、プログラミングでよく使われる関数の一種で、関数自体を呼び出すことができますが、その前に関数を付ける必要があります。それ以外の場合は、無限呼び出しが発生します。この記事では、3 つの再帰関数の実装方法を示します。1 つ目はパラメーターとして参照を使用し、3 つ目は静的変数を使用します。このような問題を理解するには、グローバル変数、参照、静的変数の理解などの基本的な知識が必要です。また、自分たちの行動範囲を理解する必要もあります。ここではこれ以上ナンセンスではありません。詳細な紹介については以下を参照してください。

最初の方法: パラメータとして参照を使用します

参照がパラメーターであるかどうかに関係なく、まず参照とは何かを理解する必要があります。参照とは、単に、異なる名前を持つ 2 つの変数が同じ記憶アドレスを指していることを意味します。元々、各変数には独自の格納アドレスがあり、代入と削除は独自の方法で行われました。

さて、2 つの変数はストレージ アドレスを共有します。 $a=&$b; .これが実際に意味するのは、 $a は、元のストレージ アドレスに関係なく、 $b とルームを共有しなければならないということです。したがって、保存されているアドレス値を変更すると、両方の値に影響します。

同じ名前の関数であっても、関数には独自の動作があります。再帰関数は、参照をパラメータとして受け取り、2 つの関数間でデータ共有を形成するためのブリッジになることを考慮します。 2 つの関数は異なるアドレスで動作しているように見えますが、実際には同じメモリ アドレスで動作します。

コードをコピーします コードは次のとおりです:
関数テスト($a=0,&$result=array()){
$a++;
if ($a $result[]=$a;
テスト($a,$result);
}
エコー $a;
$result を返します;
}

上記の例は非常に簡単で、判定条件として a を使用し、条件が true の場合、result[] に a を代入し、各再帰によって生成される a は次のようになります。結果配列に追加されます。したがって、この例で生成される $result 配列は Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => になります。 5 [ 5 ] => 6 [6] [7] => 8 [8] => 9 是 この例は比较echo a の値です。

12345678910

だと思っている人も多いと思いますが、実はそうではなく、1098765432です。なぜ?これは、関数が echo a を実行する前に次の関数の再帰を実行しているためです。 など。

2番目の方法: グローバル変数を使用する グローバル変数を使用して再帰関数を完成させます。 グローバル変数とは何かを必ず理解してください。 global関数内で変数を宣言することは、同じ名前の外部変数への参照に他なりません。変数のスコープはこの関数のスコープ内にあります。これらの変数の値を変更すると、当然のことながら、同じ名前の外部変数の値も変更されます。ただし、& を使用すると、同じ名前の変数は同じ名前の参照ではなくなります。グローバル変数を使用して再帰関数を実装するために、それほど深いレベルを理解する必要はありません。グローバル変数の本来の見方を維持することで、自然に再帰関数を理解できます。

コードをコピーします

コードは次のとおりです: 関数テスト($a=0,$result=array()){

グローバル $result;

$a++; If ($a $result[]=$a; テスト($a,$result); }

$result を返します;

} 3番目の方法: 静的変数を使用する



static
はクラスでよく見かけますが、今日では再帰関数で使用します。静的の役割を覚えておいてください。関数が最初に呼び出されたときにのみ変数を初期化し、変数値を保持します。


例を挙げてください:

コードをコピーします

コードは次のとおりです:

関数テスト(){ 静的 $count=0; エコー $count;

$count++;

} テスト(); テスト();

テスト();

テスト(); テスト(); このコードの実行結果は何ですか?
00000
ですか?絶対にありません。
01234
です。まず、初めて
test(), static
を呼び出して
$count
を初期化します。各実行後、
$count
の値は保持され、再度初期化されません。これは、
static を直接無視するのと同じです。 $count= 0

; この文。

つまり、再帰関数に static を適用する効果は想像できます。再帰関数間の「ブリッジ」として使用する必要がある変数を初期化するには、static を使用します。各再帰では、「ブリッジ変数」 の値が保持されます。

コードをコピーします コードは次のとおりです:
関数テスト($a=0){
static $result=array();
$a++;
If ($a $result[]=$a;
テスト($a);
}
$result を返します;
}

まとめ

いわゆる再帰関数は、関数呼び出し自体を処理する方法と、必要な結果が関数間で適切に「受け渡される」ことを保証する方法に焦点を当てています。もちろん、関数間の値の転送を必要としない再帰関数もあります。例:

コードをコピーします コードは次のとおりです:
関数テスト($a=0){
$a++;
If ($a エコー $a;

テスト($a);
}
}

コードの一部を使用して、PHP が再帰関数を使用して数値を累積する方法を示してみましょう。

コードは次のとおりです:

コードをコピーします コードは次のとおりです:
関数の合計 ($count) {
If ($count != 0) :
$count + 合計($count-1)を返します;
エンディフ;
}
$sum = summation(10);
print "合計 = $sum";
?>

上記の内容は、PHP の再帰関数の 3 つの実装方法と数値の累積を実現する方法についての知識です。皆さんの今後の学習に役立つことを願っています。

www.bkjia.com本当http://www.bkjia.com/PHPjc/1044861.html技術記事 PHP 再帰関数の 3 つの実装方法とデジタル累算の実装方法 PHP 再帰関数は、プログラミングでよく使用されるタイプの関数ですが、関数自体を呼び出すことができるのが特徴です。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの継続的な使用:その持久力の理由PHPの継続的な使用:その持久力の理由Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境