ホームページ >バックエンド開発 >PHPチュートリアル >PHP でオブジェクトの真のコピーを作成するにはどうすればよいですか?
PHP ではオブジェクトは参照によって渡されると考えられていますが、代入演算子はコピーを作成しません。この動作は、次のサンプル コードで示されています。
class A { public $b; } function set_b($obj) { $obj->b = "after"; } $a = new A(); $a->b = "before"; $c = $a; set_b($a); print $a->b; print $c->b;
この場合、両方の print ステートメントは「after」を出力し、オブジェクトがオブジェクトとして渡されたにもかかわらず set_b() 関数によって変更されたことを示します。
PHP でオブジェクトのコピーを作成するには、PHP 5 で導入されたクローン演算子を使用できます。 :
$objectB = clone $objectA;
この操作は、元のオブジェクトから独立した新しいオブジェクトを作成します。一方のオブジェクトに加えられた変更は、もう一方のオブジェクトには影響しません。
PHP ではオブジェクトのみが参照によって渡されることに注意することが重要です。配列、文字列、整数などの他の型の変数は値によって渡されます。これは、これらの変数を他の変数に割り当てると、元の変数への参照ではなく、変数の新しいインスタンスが作成されることを意味します。
以上がPHP でオブジェクトの真のコピーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。