再帰関数の無限分類

WBOY
WBOYオリジナル
2016-08-30 09:36:401315ブラウズ

function fun($pid=0,&$brr=array()){//& を削除すると機能しないのはなぜですか?

リーリー

}
$brr=fun();
echo '

';print_r($brr);
die();

//関数パラメータの受け渡しにおける &$brr=array() & は何を意味しますか?効果は何ですか?

返信内容:

function fun($pid=0,&$brr=array()){//& を削除すると機能しないのはなぜですか?

リーリー

}
$brr=fun();
echo '

';print_r($brr);
die();

//関数パラメータの受け渡しにおける &$brr=array() & は何を意味しますか?効果は何ですか?

マニュアルの例を見れば理解できます&

& は参照であるため、& 記号を使用すると、関数内のパラメーターに加えた変更は関数の外部にも反映されます。 & 記号を使用しないと、関数内で直面するパラメーターの変更は関数の終了時に終了します。

リーリー

上記のコードと同様に、出力は順番に10、20になります。 a2 は & 記号を使用しているため、a2 の $a を変更すると、実際に a2 に渡される $a にも影響します。

Infinitus 分類には、静的と同様に蓄積できる配列が必要です。& が削除されると、$array は再帰されるたびに再び空になり、データは蓄積されません。

& は、アドレスが渡されることを意味します。つまり、関数内の変数に対する操作によって外部変数の値が変更されます。それ以外の場合、関数呼び出しが終了すると、これらの変数の変更は消え、 によってのみ変更できます。関数から戻ってきました

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