[PHP-users 11644] Re: コンストラクタ引数にオブジェクトを
Masaaki Kikuzawa
php-users@php.gr.jp
Thu, 21 Nov 2002 13:12:42 +0900
菊澤 です。
もう回答はでてますけど、ちょっとだけ。
代入演算子でオブジェクトはコピーされるので注意が必要です。
代入演算子でのオブジェクトコピーの例
class classA {
var $mem;
}
$orig = new classA();
$copy = $orig;
$orig->mem = "original";
$copy->mem = "copy";
echo "orig->mem = {$orig->mem}<br>";
echo "copy->mem = {$copy->mem}<br>";
結果表示:
orig->mem = original
copy->mem = copy
これを踏まえると
On Wed, 20 Nov 2002 23:49:44 +0900
fumiyaKitamura <fkit.s@sys238.jp> wrote:
> >> class tst2{
> >> var $Ref;
> >> function tst2(&$OBJ){ //参照渡し
> >> $this->Ref = $OBJ;
> >> }
> >> }
1.$OBJは、引数変数を参照していまます。
2.$this->Ref = $OBJ; の代入行で引数変数のオブジェクトを
コピーします。
このため、引数変数のメンバーを変更しても、tst2オブジェクトの
Refのメンバーは、影響を受けません。
参考までに。
--------------------------------------------
菊澤 正明 mailto:kikuzawa@coo-co-ltd.co.jp
(株)空 Coo co.,ltd. http://www.coo-cyber.com