• 締切済み

クラスの生成の仕方

PHP Version 5.1.6を使っています。 よくクラスのオブジェクトを生成する時に「=&」で生成する記述を 多く見かけるのですが、自分はまだ「&」を付けることによる メリットがよく分からないので教えてもらえないでしょうか? また逆にデメリットなどもあるのでしょうか? 分かりやすい例などあったら是非知りたいです。 $obj1 = new Hoge() $obj2 =& new Hoge()

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

PHP4では = new ではオブジェクトのコピーが渡されるため =& new としてオブジェクトの参照(リファレンス)を受け取るように記述することがありましたがPHP5ではオブジェクトの代入はデフォルトで参照渡しになりました。 PHP5の = new は PHP4の=& new と同じです。 PHP5で =& new を使うのは非推奨となり以下のようにStrict エラーになります。 Strict Standards: Assigning the return value of new by reference is deprecated in ~

takagoo100
質問者

お礼

ご返答ありがとうございます。 なるほど、その点は注意しないといけないですね。 それではPHP4での「&」を付ける付けないことの メリットデメリットは何かあるのでしょうか?

関連するQ&A