ホームページ >バックエンド開発 >PHPチュートリアル >PHP でオブジェクトの真のコピーを作成するにはどうすればよいですか?

PHP でオブジェクトの真のコピーを作成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-28 09:40:11155ブラウズ

How Can I Create True Copies of Objects in PHP?

PHP でのオブジェクトのコピー: 参照渡しと 'Clone' の使用について

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。