PHP オブジェクトのクローン作成 clone キーワードと __clone() メソッド

巴扎黑
リリース: 2016-11-11 17:56:27
オリジナル
1114 人が閲覧しました


PHP オブジェクトのクローン作成 clone キーワードと __clone() メソッド

clone キーワードは同一のオブジェクトのクローンを作成するために使用され、__clone() メソッドは元のプロパティとメソッドをオーバーライドするために使用されます。

オブジェクトの複製

プロジェクト内で 2 つ以上の同一のオブジェクトを使用する必要がある場合、new キーワードを使用してオブジェクトを再作成し、同じ属性を割り当てると、面倒でエラーが発生しやすくなります。 PHP にはオブジェクト クローン作成機能があり、オブジェクトに基づいて同一のオブジェクトを完全にクローンすることができます。また、クローン作成後、2 つのオブジェクトは互いに干渉しません。

オブジェクトのクローンを作成するには、キーワード clone を使用します。構文:

$object2 = clone $object;

例:

name=$name; $this->age=$age; } function say() { echo "我的名字叫:".$this->name."
"; echo "我的年龄是:".$this->age; } } $p1 = new Person("张三", 20); $p2 = clone $p1; $p2->say(); ?>
ログイン後にコピー

例を実行し、出力:

私の名前: Zhang San

私の年齢: 20

__clone()

クローン作成後に元のオブジェクトの内容を変更するには、特別な __clone() メソッドをクラスに追加して、元の属性とメソッドをオーバーライドする必要があります。 __clone() メソッドは、オブジェクトのクローン作成時にのみ自動的に呼び出されます。

例:

name = $name; $this->age = $age; } function say() { echo "我的名字叫:".$this->name; echo " 我的年龄是:".$this->age."
"; } function __clone() { $this->name = "我是假的".$this->name; $this->age = 30; } } $p1 = new Person("张三", 20); $p1->say(); $p2 = clone $p1; $p2->say(); ?>
ログイン後にコピー

例を実行し、出力:

私の名前: Zhang San 私の年齢: 20

私の名前: 私は偽の Zhang San 私の年齢: 30


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!