ホームページ  >  記事  >  バックエンド開発  >  PHP 5.0 オブジェクト モデルの詳細な探索 - object copy_PHP チュートリアル

PHP 5.0 オブジェクト モデルの詳細な探索 - object copy_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:53:05695ブラウズ

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

clone メソッドにはパラメーターを含めることはできませんが、このポインターとあのポインター (コピーされたオブジェクトを指す) の両方が含まれます。自分自身のクローンを作成する場合は、オブジェクトに含めるすべての情報を、そのオブジェクトからこのオブジェクトにコピーするように注意する必要があります。コピーに __clone を使用する場合、PHP は暗黙的なコピーを実行しません。以下に、series を使用した例を示します。 ordinal オブジェクトを自動化する例:

コードをコピーします。 コードは次のとおりです。
class ObjectTracker //Object tracker
{
private static $nextSerial = 0;
private $name;

function __construct($name) //コンストラクター関数
{
$this->name = $name;
$this->id = ++self::$nextSerial
}

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

function getId() //Get id 属性の値
{
return($this->id);
}

function getName() //name 属性の値を取得
{
return($this->name)
; }

$ot = new ObjectTracker("Zeev's Object");
$ot2 = clone$ot;

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

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





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

tru​​ehttp://www.bkjia.com/PHPjc/318832.html技術記事デフォルトでは、__clone メソッドを使用すると、元のオブジェクトと同じプロパティとメソッドを持つオブジェクトが作成されます。クローン作成時にデフォルトの内容を変更したい場合は、(プロパティまたはメソッド... ) をオーバーライドする必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。