[PHP-users 377] クラスの中のクラスのメンバの中身が消える
ikeyasu
php-users@php.gr.jp
Fri, 29 Jun 2001 01:55:26 +0900
初めまして、池内康樹と申します。
最近PHPを始めたばかりです。以下のようなソースで疑問を感じました。
-----
<HTML>
<HEAD>
<TITLE>Test</TITLE>
</HEAD>
<BODY>
<?php
class Test
{
var $data;
function Test(){
$this->data = new TestData;
}
function getTest(){
return $this->data;
}
}
class TestData
{
var $name="Nothing";
function TestData()
{
}
function setName($input){
$this->name = $input;
}
function getName(){
return $this->name;
}
}
$a = new Test();
$b = $a->getTest();
$b->setName("test.");
echo $b->getName() . "<BR>";
echo $b->getName() . "<BR>";
$c = $a->getTest();
echo $c->getName() . "<BR>";
?>
</BODY>
</HTML>
-----
としたとき、想定する結果は、
-----
test.
test.
test.
-----
なのですが、実際は
-----
test.
test.
Nothing
-----
に出力されます。
すなわち、最初にgetTestをしたときに得た、インスタンスには設定した値がちゃ
んと入っているのに、次にgetTestで得たインスタンスには値が入っていません。
これはバグなのでしょうか?それとも仕様なのでしょうか。
トンチンカンな質問かもしれませんが、お願いします。
------------------------------------------------------------------------
舞鶴工業高等専門学校 電気工学科 学生 / 池内 康樹 / yasuki@bigfoot.com
------------------------------------------------------------------------