PHP4のクラスについての質問です。


オブジェクトを生成する際に、

$obj =& new hogeClass;

みたいに、参照渡しになっているスクリプトをよく見るのですが、
なぜ参照渡しにしているわかりません。
参照渡しにすべきケースや参照渡しにするメリットなどをご教授ください。

回答の条件
  • 1人2回まで
  • 登録:2007/09/12 08:50:03
  • 終了:2007/09/12 09:27:22

ベストアンサー

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/09/12 09:12:56

ポイント100pt

むしろ参照渡しにしない場合のデメリットを考えた方がわかりやすいかも。


  1. 値のコピーになるのでメモリ使用量が大きくなる。
  2. オブジェクトの状態を変更するメソッドを読んでも変更されるのは常にコピーなので、オブジェクト指向的に問題アリ。
  3. デストラクタあたりでリソースの解放を行っている場合(DBの接続とか)別のコピーが開放してしまっていることで不具合が起こる可能性がある。

「オブジェクトの生成」時点に限定するなら2番は関係ないですが。

id:masashi0316

ありがとうございます。

納得しました。

2007/09/12 09:18:00

その他の回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/09/12 09:12:56ここでベストアンサー

ポイント100pt

むしろ参照渡しにしない場合のデメリットを考えた方がわかりやすいかも。


  1. 値のコピーになるのでメモリ使用量が大きくなる。
  2. オブジェクトの状態を変更するメソッドを読んでも変更されるのは常にコピーなので、オブジェクト指向的に問題アリ。
  3. デストラクタあたりでリソースの解放を行っている場合(DBの接続とか)別のコピーが開放してしまっていることで不具合が起こる可能性がある。

「オブジェクトの生成」時点に限定するなら2番は関係ないですが。

id:masashi0316

ありがとうございます。

納得しました。

2007/09/12 09:18:00
id:KUROX No.2

KUROX回答回数3542ベストアンサー獲得回数1402007/09/12 09:16:05

ポイント50pt

http://www.atmarkit.co.jp/flinux/special/php5/php5b.html

Javaではシンプル変数は値渡し、オブジェクト、配列は参照渡し

です。

id:masashi0316

ありがとうございます。

2007/09/12 09:21:30
id:GEN111 No.3

GEN111回答回数472ベストアンサー獲得回数582007/09/12 09:14:11

id:masashi0316

ありがとうございます。

いままで、一連の処理中に複数回プロパティを変更したりってなことをしてなかったからうまくいってたんだ。。

お三方ともありがとうございました。

2007/09/12 09:26:42

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません