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"
こんな感じになります。