PHP5 オブジェクトは参照渡しされますか? [重複] 質問する

PHP5 オブジェクトは参照渡しされますか? [重複] 質問する

これについては一貫した情報が得られないようです。さまざまな情報源がさまざまなことを言っているようで、由緒あるphp.net自体(登場) は、これを明確に述べていませんが、正直に言うと、私はざっと見ただけです。

「重い」オブジェクトを渡す場合には、参照渡しをする必要がありますが、入力し続けるのは嫌です。

function foo(TypeName& $obj)

もし私が簡単に逃げ切れるなら

function foo(TypeName $obj)

それで、標準では何と言っていますか?

ベストアンサー1

オブジェクトは参照によって渡され (割り当てられ) ます。アドレス演算子を使用する必要はありません。

私が書いた内容は単純化しすぎているかもしれませんが、あなたの目的には適っていると思います。ドキュメンテーション状態:

PHP5 OOP の重要なポイントとしてよく挙げられるのは、「オブジェクトはデフォルトで参照によって渡される」ということです。これは完全に正しいわけではありません。このセクションでは、いくつかの例を使用して、この一般的な考え方を修正します。

PHP 参照はエイリアスであり、2 つの異なる変数に同じ値を書き込むことができます。PHP5 以降、オブジェクト変数にはオブジェクト自体が値として含まれなくなりました。オブジェクト アクセサーが実際のオブジェクトを見つけることができるオブジェクト識別子のみが含まれます。オブジェクトが引数で送信されたり、返されたり、別の変数に割り当てられたりする場合、異なる変数はエイリアスではありません。同じオブジェクトを指す識別子のコピーが保持されます。

より詳しい説明(単純化と識別子の説明)については、この答え

おすすめ記事