ホームページ > バックエンド開発 > PHPチュートリアル > PHP オブジェクトのクローン作成 clone キーワードと _clone() ステップ

PHP オブジェクトのクローン作成 clone キーワードと _clone() ステップ

WBOY
リリース: 2016-06-13 13:06:27
オリジナル
904 人が閲覧しました

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

オブジェクトの複製

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

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

$object2 = clone $object;
ログイン後にコピー


例:
<?php
class Person {
    private $name;
    private $age;

    function __construct($name, $age) {
        $this->name=$name;
        $this->age=$age;
    }

    function say() {
        echo "我的名字叫:".$this->name."<br />";
	echo "我的年龄是:".$this->age;
    }
}

$p1 = new Person("张三", 20);
$p2 = clone $p1;
$p2->say();
?>
ログイン後にコピー


例を実行し、出力:
我的名字叫:张三
我的年龄是:20
ログイン後にコピー


__clone()

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

例:
<?php
class Person {
    private $name;
    private $age;

    function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    function say() {
        echo "我的名字叫:".$this->name;
	echo " 我的年龄是:".$this->age."<br />";
    }
    function __clone() {
        $this->name = "我是假的".$this->name;
        $this->age = 30;
    }
}

$p1 = new Person("张三", 20);
$p1->say();
$p2 = clone $p1;
$p2->say();
?>
ログイン後にコピー


例を実行し、出力:
我的名字叫:张三 我的年龄是:20
我的名字叫:我是假的张三 我的年龄是:30
ログイン後にコピー

1階 メイハオデリジ123 2012-08-14
ありがとう、この記事はとても役に立ちます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート