- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの参照渡しについて)
PHPの参照渡しについて
このQ&Aのポイント
- PHPの参照渡しについて説明します
- 変数の参照によってオブジェクトの状態を共有することができます
- 明示的な参照渡しでは、オブジェクトの状態が共有されるだけでなく、変数の値も変更されます
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>PHPにおける参照渡し(&をつかう)はC++におけるエイリアスとおなじ処理(同義)ですか? そうですね。 $foo = &$obj; した以降は、$foo と $obj への代入や参照はどちらも同一になります。別名。 この結びつきは、 unset($foo); で解除されます。 http://www.php.net/manual/ja/language.references.whatare.php から始まる数ページを読んでください。
その他の回答 (2)
noname#244856
回答No.2
以前私もぶち当たった壁で、そのとき詳しく調べてYahoo!知恵袋で知恵ノートにまとめました。 http://note.chiebukuro.yahoo.co.jp/detail/n127275 tezcelloさんから指摘がある通り、PHPに「ポインタ」の概念はないのですが、考え方的にはこれで理解が出来るはずです。 「ポインタ」ではなく「オブジェクトID」で考えるならば、 $obj = new stdClass(); $foo = $obj; 「変数はオブジェクト型、オブジェクトIDは$objの現在の値」 $foo = &$obj; 「変数はオブジェクト型、オブジェクトIDは$objの参照する値」
- agunuz
- ベストアンサー率65% (288/438)
回答No.1
RTFM. http://www.php.net/manual/ja/language.operators.assignment.php ------- 引用ここから PHP では通常は値による代入になりますが、オブジェクト型については例外です。 PHP 5 以降、オブジェクトは参照で代入されるようになりました。オブジェクトを明示的にコピーするには clone キーワードを使います。 ------- 引用ここまで
補足
えーちょっとしりたかったことと、ご回答いただいたものが違ったので 質問をかえますね。 ずばり PHPにおける参照渡し(&をつかう)は C++におけるエイリアスとおなじ処理(同義)ですか?