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

Twitter ツイート Hatena Bookmark ブックマーク

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?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() );

?>

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

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

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

1
$b = clone $a;

って感じに。

そうすると実行結果は

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

こんな感じになります。

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。