ホームページ >バックエンド開発 >PHPチュートリアル >再帰関数の無限分類
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 は再帰されるたびに再び空になり、データは蓄積されません。
& は、アドレスが渡されることを意味します。つまり、関数内の変数に対する操作によって外部変数の値が変更されます。それ以外の場合、関数呼び出しが終了すると、これらの変数の変更は消え、 によってのみ変更できます。関数から戻ってきました