$a=new A と $a= & new A に違いはありますか?解決
$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 コード
<?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>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
