- 締切済み
クラスの生成の仕方
PHP Version 5.1.6を使っています。 よくクラスのオブジェクトを生成する時に「=&」で生成する記述を 多く見かけるのですが、自分はまだ「&」を付けることによる メリットがよく分からないので教えてもらえないでしょうか? また逆にデメリットなどもあるのでしょうか? 分かりやすい例などあったら是非知りたいです。 $obj1 = new Hoge() $obj2 =& new Hoge()
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 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 ~
お礼
ご返答ありがとうございます。 なるほど、その点は注意しないといけないですね。 それではPHP4での「&」を付ける付けないことの メリットデメリットは何かあるのでしょうか?