この投稿は yinjie_1984 によって最終編集されました: 2014-11-15 08:22:22 $a=1;
$b= & $a;
$b=$a ;
//Find $a, $b
2 番目の文は、b も a のアドレスを指していることを意味します;
3 番目の文どういうことかというと、使用後はaの値が1増えるので、$b=1;
重要なのは、$aの値が後で分からないということです。使用後は 1 なので $a=2;
しかし $b のアドレスは a のアドレスと同じです $b も 2 に等しいということではありませんか?それとも 3 番目の文の後の $a はまったく実行されないのでしょうか?この質問に対する答えは、$a と $b は両方とも 1 です。
たとえば、これと比較してください
$a=1;
$b=$a;
?> ;
$b=1、$a=2 じゃないですか?
ちょっとめまいがします。 。 。
------ソリューションのアイデア----------------------$a = 1;<br />$b = $a++;<br />var_dump($a, $b);<br />/*<br />int(2)<br />int(1)<br />*/<br /><br />$a = 1;<br />$b = &$a;<br />$a++;<br />var_dump($a, $b);<br />/*<br />int(2)<br />int(2)<br />*/<br /><br />$a = 1;<br />$b = &$a;<br />$b = $a++;<br />var_dump($a, $b);<br />/*<br />int(1)<br />int(1)<br />*/<br />
$ でb = $a ;
$a の値 1 を取り出して $b に代入しますが、b の優先度は $a への参照なので、この時点の $b の値も 2)
次に代入操作を実行すると、$b の値は 1 になります
$b は $a への参照であるため、$a は再度変更されます 1
と返信されました