ホームページ > php教程 > php手册 > PHP 5.0 オブジェクト モデルのオブジェクト コピーの詳細な調査

PHP 5.0 オブジェクト モデルのオブジェクト コピーの詳細な調査

WBOY
リリース: 2016-06-13 12:29:40
オリジナル
850 人が閲覧しました

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

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

コードをコピー コードは次のとおりです:


class ObjectTracker //Object Tracker
{
private static $nextSerial = 0;
private $id;

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

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

function getId() //取得id 属性 Value
{
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() . "");

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



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