ホームページ >バックエンド開発 >PHPチュートリアル >セクション 5 [5]_PHP チュートリアルのクローン作成

セクション 5 [5]_PHP チュートリアルのクローン作成

WBOY
WBOYオリジナル
2016-07-21 16:10:52906ブラウズ


PHP5 のオブジェクト モデルは参照によってオブジェクトを呼び出しますが、オブジェクトのコピーを作成し、元のオブジェクトへの変更がコピーに影響しないようにしたい場合があります。そのために、PHP は _ _clone と呼ばれる特別なメソッドを定義します。 __construct と __destruct の前には 2 つのアンダースコアがあります。

デフォルトでは、__clone メソッドを使用すると、元のオブジェクトと同じプロパティとメソッドを持つオブジェクトが作成されます。クローン作成時にデフォルトの内容を変更したい場合は、オーバーライドする必要があります。 __clone の (プロパティまたはメソッド)

clone メソッドにはパラメーターを含めることはできませんが、自分自身を複製することを選択した場合は、Any のコピーに注意する必要があります。 __clone を使用してコピーする場合、次は系列の序数を使用してオブジェクトを自動化する例を示します。 class ObjectTracker file://Object Tracker
{
private static $nextSerial = 0;
private $name;

function __construct($name) file://constructor
{
$ this->name = $name;
$this->id = ++self::$nextSerial
}

function __clone() file://clone
{
$this->name = "クローンof $that->name";
$this->id = ++self::$nextSerial;
}

function getId() file://id 属性の値を取得します
{
return($ this->id);
}

function getName() file://name 属性の値を取得します
{
return($this->name);

$ot = new ObjectTracker (" Zeev のオブジェクト");
$ot2 = $ot->__clone();

//出力: 1 Zeev のオブジェクト
print($ot->getId() . " " . $ot->getName () . "
");

//出力: Zeev のオブジェクトの 2 つのクローン
print($ot2->getId() . " " . $ot2->getName() . "?>



http://www.bkjia.com/PHPjc/314114.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/314114.html技術記事 PHP5 のオブジェクト モデルは参照によってオブジェクトを呼び出しますが、オブジェクトのコピーを作成し、元のオブジェクトへの変更がコピーに影響しないようにしたい場合があります。この目的のために、PHP...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。