ホームページ > php教程 > php手册 > セクション 5 クローン作成 [5]

セクション 5 クローン作成 [5]

WBOY
リリース: 2016-06-13 12:45:50
オリジナル
1055 人が閲覧しました


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

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

clone メソッドにはパラメーターを含めることはできませんが、自分自身のクローンを作成することを選択した場合は、このポインターとそのポインターの両方が含まれます。オブジェクトに含めたい情報を、そこからこれにコピーする場合、PHP は暗黙的なコピーを実行しません。以下に示すシリアル序数の使用例です。オブジェクトを自動化するための数値: class ObjectTracker
{
private static $nextSerial = 0;
private $name; __construct($name) file://constructor
{
$this->name = $name;
$this->id = self::$nextSerial;
function __clone() file://clone
{
$this->name = "$that->name のクローン";
$this->id = self :: $nextSerial;
}

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

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

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

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

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