PHP でのオブジェクトの複製の詳細
PHP でオブジェクトを操作する場合、オブジェクトは本質的に参照によって渡されることを理解することが重要です。これは、関数内でオブジェクトに加えられた変更は元のオブジェクトにも影響することを意味します。この動作は、状況に応じて有利にも不利にもなります。
具体的な例では、代入 $c = $a によりオブジェクト $a のコピーが作成されることが予想されます。ただし、オブジェクトは参照によって渡されるため、$c は実際には $a と同じオブジェクトを指します。したがって、後続の set_b($a) の呼び出しでは、$a と $c の両方が事実上同じオブジェクトであるため変更されます。
PHP でオブジェクトのコピーを実際に作成するには、クローンを使用する必要があります。オペレーター。この演算子は、元のオブジェクトと同じプロパティと値を持つ新しいオブジェクトを作成しますが、メモリ アドレスは異なります。 clone 演算子を使用すると、クローン オブジェクトに加えた変更が元のオブジェクトに影響を与えないようにできます。
コードでクローンを実装する方法は次のとおりです。
$objectB = clone $objectA;
この行は、 $objectA のコピーである新しいオブジェクト $objectB を作成します。 $objectB に加えられた変更は $objectA には影響しません。また、その逆も同様です。
すべてのオブジェクトを複製できるわけではないことに注意してください。循環参照があるオブジェクト、または __clone() メソッドを実装しているオブジェクトは、正しくコピーできない場合があります。このような場合、各プロパティを個別に割り当てて、オブジェクトのコピーを手動で作成する必要がある場合があります。
以上がPHP オブジェクトの真のコピーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。