<?php
function sum($y) {
$y = $y + 5;
}
$x = 5;
sum($x);
echo $x;
?>
だから私はこのコードを持っています。質問は次のとおりです。答え:5.どのようにして10を出力するのですか?答え:sum(& $ x)。参照渡しと値渡し
問題は私が最初の質問に対する答えが5である理由を理解できないことです。あなたがsum($ x)を作成すると、その関数を$ xと置き換えるべきではないので、$ x = 5 + 5 = 10?なぜ答えは5ですか?私は本当に理解していない。誰かが私にポインタと住所に関するものを説明してくれましたが、私は理解しませんでした。私はポインタの概念を理解していない、私はそれをgoogledと明らかにPHPのポインタがないので、私は非常に混乱している。私の友人は、変数は値で構成され、その値のメモリアドレスは、誰かが私が5歳で、答えが5で10ではないように私を説明することはできますか?してください
'の値$ X + 5'' $のX 'に戻されていません'$ y'には' sum($ y) '関数のスコープ内にしか存在しません。 – x13
しかし、なぜそれが起こるのですか?私は私の質問が本当にばかだと知っています。つまり、sum($ x)は$ x = $ x + 5ではないのですか?なぜそれは$ yに戻されますか? sum($ x)は、$ yを$ xに置き換えることを意味しませんか? –
デフォルトでは 'sum($ y)'関数で使用する '$ y'という' $ x'の 'duplicate'を作成します。この時点で '$ x'と' $ y'は何も関係がありません。偶然)彼らの価値。 '$ y'は5だけ増加しますが、' $ x'はどこにも言及されていません。この 'sum(&$ y)'としてパラメータリストに '$ y'を入れると、新しい複製を作成するのではなく、' $ x'を参照します。ポストイットに誰かの電話番号を書き留めることと、電話番号を見つけることができるポストイットに書き込むことの違いです。 – x13