次の点に違いはありますか?新しいMyClass()と新しいMyClass()(PHP)
$myVar=&new MyClass();
$myVar=new MyClass();
PHP5を使用している場合、私はPHP
次の点に違いはありますか?新しいMyClass()と新しいMyClass()(PHP)
$myVar=&new MyClass();
$myVar=new MyClass();
PHP5を使用している場合、私はPHP
でコーディングしています、違いはありません。
PHP4を使用している場合、前者は新しいオブジェクトへの参照を渡します。
これは、「新規」がデフォルトで参照を返さず、代わりにコピーを返すためです。
PHP5を使用していますか?次に、以下を使用する必要があります。
$myVar=new MyClass();
これは、クラスを初期化するのに受け入れられる方法です。 E_STRICT
が有効になっている場合は、次の使用
:
$myVar=&new MyClass();
は、PHPランタイムが警告Deprecated: Assigning the return value of new by reference is deprecated
を上げることになります。
&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
、新しいオブジェクトへの参照を持つだろうどのような違い作りますか? – Casebash
@Casebash:PHP4は、デフォルトで参照を渡すのではなく、オブジェクトインスタンスをコピーします。 '&'は* reference *演算子です。 – alex