PHP 定數(shù)と変數(shù)の変數(shù)參照
変數(shù)リファレンス
変數(shù)リファレンス 多くの教師は、C 言語(yǔ)ポインタを使って説明することを好みます。長(zhǎng)年の開発と教育の経験を持つ人として、PHP を?qū)W習(xí)する人のほとんどは C 言語(yǔ)をまったく理解していません。
C言語(yǔ)のポインタを使って変數(shù)參照を説明すれば十分だと思います。また、C 言語(yǔ)の基礎(chǔ)を持たない友人が學(xué)習(xí)するのは好ましくありません。
変數(shù)參照の知識(shí)點(diǎn)については、こちらの解説を參考にして理解してください!
2 つのコード部分の実行結(jié)果を比較してみましょう:
最初のコード部分には違いはありません。元の PHP コードとまったく同じです:
<?php $fo = 5; //$fo的值為5,將5賦值 $bar = $fo; //$bar的值原來為5,現(xiàn)在將值改為6 $bar = 6; //$bar的結(jié)果為6 echo $bar.'<br />'; //$fo的結(jié)果為5 echo $fo.'<br />'; ?>
コードの 2 番目の部分:
<?php $fo = 5; //注意,加上了一個(gè)&符喲 $bar = &$fo; $bar = 6; //$bar的結(jié)果為6 echo $bar.'<br />'; //$fo的結(jié)果為6 echo $fo.'<br />'; ?>
なぜ両方の結(jié)果が 6 になるのでしょうか?
私はよくこんな例を挙げます。これは次のように想像できます。変數(shù)名はデータ値に対応します。以下に示すように:
に & (and 記號(hào)の後に) を追加すると、以下に示すように、変數(shù)が同じ記憶域を指します:
つまり、$fo または $bar の値がどのようなものであっても、 $fo が変化すると、$bar も変化します。$bar が変化すると、$fo も変化します。
理解を助けるために、信頼性の低い例を挙げましょう:
あなたは家にワンツァイという名前の子犬を飼っています。ゴーダンという名前の子犬がもう1匹います。ある日、あなたは犬の卵を食べました。ゴーダンという名前はワンカイに付けられました
そうすると、ゴーダンを叩いてもワンカイを叩いても同じ犬を叩いていることになります。
注: C 言語(yǔ)のポインターを理解し、理解しており、精通している場(chǎng)合。ポインタを使用して自分で理解することもできますが、これについてはこの記事の範(fàn)囲を超えています。