今日はPHP変数のメモリ割り当てに関する問題に遭遇したので記録しておきます。
次のコード:
コードをコピーします コードは次のとおりです:
$a = array (
'str' => 1,
'child' => 2
);
$b = $a;
$b['child'] = $a;
echo $b['str']; ;
echo $a['str'];
結果は 11 になります。 $b=$a の場合、ab は同じ領域 $b['child を指します。 ']= $a の場合、$b はまず $a の元の内容をコピーし、それからそれを変更します。つまり、この時点では $b と $a は異なる領域を指しており、相互作用しません。 $a または $b を変更するとき。
このコードをもう一度見てください:
コードをコピーします
コードは次のとおりです: class A
{
public $str = '';
$a =新しい A() ;
$a->str = 1;
$b->子 = $a; ->str = 2;
echo $b->str;
echo $a->str;
実際の状況から判断すると, $b-> ;child=$a の場合、ab と a->child はどちらも同じ領域を指します。どちらかを変更すると、他も変更されます。
しかし、なぜ PHP はこのように設計されているのでしょうか?
http://www.bkjia.com/PHPjc/621711.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/621711.html
技術記事
今日はPHP変数のメモリ割り当てに関する問題に遭遇したので記録しておきます。 コードは次のとおりです。 コードをコピーします。 コードは次のとおりです。 $a = array ( 'str' = 1, 'child' = 2 ); $b['child']...;