PHP5でのオブジェクトのコピー

February 3, 2009,
tags: php php5 値渡し


このエントリーをはてなブックマークに追加

cloneって使えばいいんだっけか?
ということでメモとして書いてみました。

<?php

class test
{
    public $arg='';
    function  __construct($arg){
        $this->arg = $arg;
    }

    public function set($arg){
        $this->arg = $arg;
    }

    public function get(){
        return $this->arg;
    }
}
    $a = new test("a");
    $b = $a;
    $a->set("c");
    var_dump( $a->get() );
    var_dump( $b->get() );

?>


この状態だと実行結果は以下のとおり

string(1) "c"
string(1) "c"

デフォで参照渡しなのは便利だけど困るときもある。
そんなときはcloneを使う。

$b = clone $a;

って感じに。

そうすると実行結果は

string(1) "c"
string(1) "a"

こんな感じになります。

comments powered by Disqus