2011-11-22 14 views

答えて

6

でコーディングしています、違いはありません。

PHP4を使用している場合、前者は新しいオブジェクトへの参照を渡します。

これは、「新規」がデフォルトで参照を返さず、代わりにコピーを返すためです。

Source

Give this a read, too

+0

、新しいオブジェクトへの参照を持つだろうどのような違い作りますか? – Casebash

+1

@Casebash:PHP4は、デフォルトで参照を渡すのではなく、オブジェクトインスタンスをコピーします。 '&'は* reference *演算子です。 – alex

3

PHP5を使用していますか?次に、以下を使用する必要があります。

$myVar=new MyClass(); 

これは、クラスを初期化するのに受け入れられる方法です。 E_STRICTが有効になっている場合は、次の使用


$myVar=&new MyClass(); 

は、PHPランタイムが警告Deprecated: Assigning the return value of new by reference is deprecatedを上げることになります。

+0

なぜ警告が表示されますか?何がうまくいかない? – Casebash

+0

@Casebash:これは、動作が以前のメジャーバージョンから変更され、動作が暗黙的になっているというヒントです。 – alex

+0

@Casebash:これは非推奨の動作です。 PHP5ではなぜインスタンスの初期化の前に '&'を置く必要があるのでしょうか。 –

0

&newがPHP7から削除されました。代わりにnewを使用する必要があります。

参照

による新の割り当て参照することにより、新たな表現のPHP 5.3割り当ては を推奨されていませんので。

// $ obj = &の代わりに、新しいクラス名;通常の割り当てで置き換えることができます。

// Write $ obj = new ClassName;

PHP 5.0以降、参照によって戻り値を割り当てる必要はなくなりました。

チェックこのスレッドPHP4でhttps://wiki.php.net/rfc/remove_deprecated_functionality_in_php7

関連する問題