$a=new A と $a= & new A に違いはありますか?
$a=new A; // $a は new A のポインタのコピーです ($a はポインタ自体を保存します)
$a=& new A;新しい A のポインタへの参照です ($a はポインタのアドレスを保存します)
上記の記述は正しいでしょうか?
さらに:
$c= & $a の場合、なぜ $a も A のポインタへの参照になるのでしょうか?
-----解決策---------
$ いつc= & $a の場合、なぜ $a も A のポインタへの参照になるのでしょうか?
は $a=& new A ?
から継承されます。
------解決策---------
ふふ、&はCシンボルのアドレスです
------解決策---------
php の変数はすべてポインタですが、文字列の変数はすべてポインタです、int など、assignment = はオブジェクトのコピーです。オブジェクトの場合、assignment = はアドレスのコピー (つまり参照) です。これでよく理解できた気がします。
------解決策-----
PHP のバージョンに関係なく、新しい演算子が生成されますこれらはすべて
$a =& new A;
を引用しています。この書き方は不正確です。オブジェクトへの参照を変数に代入しますか?
そのため、書き込み形式を標準化するために php5.3 で新しいエラー タイプが追加されました
非推奨: new の戻り値を参照によって割り当てることは非推奨です
php5.2 以前ではエラーは報告されません. しかし、それが間違いではないというわけではありません。
E_NOTICE レベルのエラーをブロックしたようなものですが、結局のところ、未定義の変数や添字を使用していることになります。
------解決策---------
非常に複雑な問題
------解決策----------------------
オーソドックスな使い方
$c = new A;
他の用法はナンセンスとして扱ってください。
------解決策---------
ああ、すごい人のブログを読んでみよう
http://www.laruence.com/2008/09/19/520.html
6 階で問題を説明しました
------解決策---------
マニュアルを確認してください:
概要引用:
PHP での引用とは、同じ変数の内容に異なる名前でアクセスすることを意味します。これは C ポインターとは異なり、参照はシンボル テーブルのエイリアスです。 PHP では変数名と変数の内容が異なるため、同じ内容でも異なる名前が付けられることに注意してください。最も近い類似点は、Unix のファイル名とファイル自体です。変数名はディレクトリ エントリであり、変数の内容はファイル自体です。参照は、Unix ファイル システムのハードリンクと考えることができます。
new について:
「type」のインスタンスを構築し、オブジェクトへの参照を「result」に保存します。
したがって、$c = new A; はオブジェクトのコピーではなく代入参照です。 。 $c = &new A; は間違っています。
PHP 5 では、new は自動的に参照を返すため、ここでの =& の使用は廃止され、E_STRICT レベルのメッセージが生成されます。
------解決策---------
課題について:
メモ代入操作では、元の変数の値が新しい変数にコピーされるため (値による代入)、一方を変更しても他方には影響しません。これは、非常に密なループで大きな配列などの値をコピーするのにも適しています。 $var = &$othervar; 構文を使用して参照割り当てを使用することもできます。参照割り当てとは、両方の変数が同じデータを指し、データのコピーが存在しないことを意味します。引用の詳細については、引用の説明を参照してください。 PHP 5 では、新しい clone キーワードが明示的に使用されない限り、オブジェクトは常に参照によって割り当てられます。
<?php $a = 1; $b = &$a; $c = $a; $b = 2; echo "a:$a、b:$b、c:$cn"; $d = $b; $d = 3; echo "a:$a、b:$b、c:$cn"; クラスA { パブリック $foo = 1; } $oa = 新しい A; $ob = $oa; $oa->foo = 2; echo "oa:$oa->foo、ob:$ob->foon"; ?> <br><font color="#e78608">------解決策---------</font><br>$a =1;<br>$b = & $a; <br>異なる変数は同じアドレスを指します。そのうちの 1 つ ($b=2) が変更されると、他の変数も変更されます ($a=2)。 b)) $a = 2 はまだ存在します。 <br><br>$a =1;<br>$b = $a;//彼は $b=1<br>=> $a =1;$b=1;<br>$b $ a 一銭も関係ない、あなたはあなた、私は私、誰も誰のことも気にすることはできません。 <br><br>$a=& new A; こういうのは本当に使わない、面白くない。 <div class="clear"></div>