[PHP-users 20197]コピーせずにリファレンス渡しになる

奥村 okuran_php_ml @ hotmail.com
2004年 2月 2日 (月) 20:02:53 JST


お世話になります。奥村と申します。

以下のコードを実行すると「bbb」が返ってきます。

Class test {

    var $Val;

    Function setVal ($pVal) {
        $this->Val = $pVal;
    }

    Function getVal () {
        Return $this->Val;
    }

}


$ObjTest = new test();

$ObjTest->setVal("aaa");
$Val =& $ObjTest->getVal();

$ObjTestCopy = $ObjTest;
$ObjTestCopy->setVal("bbb");

Echo $Val;


マニュアルにもあるように「$ObjTestCopy = $ObjTest;」では
コピーが生成されるはずなので「aaa」が返ってくると思っていたのですが、
「bbb」が返ってくるのでビックリしています。
この動作は正しいのでしょうか?

テスト環境は
php 4.3.4
apache 1.3.22
TurboLinux 7
です。

ご教授宜しくお願いします。


PHP-users メーリングリストの案内