国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHPカスタム関數(shù)再帰関數(shù)

再帰関數(shù)、再帰は単なる名前であり、再帰関數(shù)の規(guī)定は次のとおりです: 関數(shù)本體は関數(shù)自體を呼び出します。

この章の學(xué)習(xí)プロセスでは、ある程度の深い思考と理解が必要ですが、どうしても思考が追いつかない場合は、學(xué)習(xí)せずにこの章を飛ばしても問題ありません。

実際の作業(yè)では、再帰は便利ですが、使用量はそれほど多くないからです。再帰は実際の作業(yè)で主に使用されるのは、ファイルやフォルダーを操作するときです。

解決策:
あなたの思考がこの章に追いつかない場合は、このブロックの原理を直接理解し、既製のファイルおよびフォルダーの処理関數(shù)またはファイル処理クラスを使用できます。

考え方の盲點についてお話します:

1. コードは上から下に実行され、すべてのコードには exit などのストップ文字が含まれず、関數(shù)は完了する必要があります。

2. 関數(shù)が関數(shù) A から関數(shù) B にジャンプする場合、関數(shù) A の殘りのコードを?qū)g行する前に関數(shù) B を?qū)g行する必要があります。

3. 再帰関數(shù)は実行を完了でき、終了條件がなければなりません。そうでない場合、関數(shù)は無限ループに制限されます。関數(shù)はそれ自體を永久に実行します。

それを理解するためにコードを書いてみましょう:

<?php

$num = 10;


//調(diào)用一次函數(shù)A();
A($num);



function A( $arg ){

   echo $arg;

   //在函數(shù)A里面去,跑去執(zhí)行函數(shù)B去了
   B($arg);


   echo '我們需要不斷的努力,努力到上天都為我們感動';


   echo $arg.'<br />';
}

function B( $number ){

       echo $number;


       echo '俺是狗蛋,執(zhí)行完了<br />';

}


?>

上記の例を通して、次のことが分かります:

1. 関數(shù) A の実行の途中で、関數(shù) B を?qū)g行するために走りました

2. 関數(shù) B を?qū)g行した後、最初に表示されるのは、「私は犬です。処刑は終わりました」、次に表示されるのは、「神が私たちに感動するまで、私たちは一生懸命働き続ける必要があります」です

3. これは、私たちがいわゆる盲點であることを証明しています內(nèi)容を考えると、コードは上から下まで実行され、コードは完全に実行される必要があります。

簡単な再帰コードを書いて、関數(shù)自體を呼び出してみましょう。

<?php

$n = 2;

function dg( $n ){

   echo $n.'<br />';

   $n = $n - 1;

   if($n > 0){
       //在函數(shù)體內(nèi)調(diào)用了dg自己喲
       dg($n);

   }else{

       echo '--------------';
   }

   echo '俺是狗蛋,俺還沒執(zhí)行' . $n . '<br />';

}
?>

表示された結(jié)果は何だと思いますか?なぜこんなことになっているのでしょうか?

慎重に推論してみましょう:

1. 初めて dg() が呼び出されるとき、數(shù)値 $n = 2 が dg に渡され、最初に 2 が表示されます

2. その後、$n - 1 $n の値が表示されますorder to 1

3. 次に、$n が 0 より大きいかどうかを判斷します。$n は 0 より大きいはずなので、自分で再帰を呼び出して、自分で再度実行します。

4. 獨自の dg() を 2 回目に実行すると、「私は犬です、まだ実行していません」というメッセージが表示されます。 $n はまだ実行されていません。実行が完了するまで待ってから再度実行してください

5.$n はこの時點では 1 に等しいため、1 が表示されます。

6.$n は自分自身を 1 回減算し、$n の結(jié)果は 0 になります

7. $n が 0 より大きいということは絶対に真実ではないため、メッセージが表示されます: "-------- ----- "

8. この時點で、実行する時が來ました: echo '私は犬です、まだ実行していません' . $n . '

';

9. の 2 回目の実行dg()が完了しました。 dg() のコードは初めて実行されていないため、ポイント 4 の殘りのコードが実行されています。


學(xué)び続ける
||
<?php $n = 2; function dg( $n ){ echo $n.'<br />'; $n = $n - 1; if($n > 0){ //在函數(shù)體內(nèi)調(diào)用了dg自己喲 dg($n); }else{ echo '--------------'; } echo '俺是狗蛋,俺還沒執(zhí)行' . $n . '<br />'; } ?>