[PHP-users 32447] 継承クラス内のstaticメンバについて

Yutaro Mitsui yutaro @ flight-city.com
2007年 7月 16日 (月) 16:47:56 JST


お世話になっています。三井です。


継承クラス内のstaticメンバについて質問です。

あるクラスを継承したクラスが2つあるとします。
基底クラスで、staticなメンバを定義しています。
片方の継承したクラスで、そのstaticなメンバの値を
変更すると、もう片方の継承したクラスの値も変更されます。

これは、仕様でしょうか?

ソースで表現すると、以下の通りです。
結果は、
222
222
333
444
となります。
継承しているので、
111
222
333
444
となるものと思っていました。


やりたいことは、ロードに時間の掛かる値を
複数のインスタンス間(下の例で言うと、Test1の複数のインスタンス)で
共有したいという事です。


Test1::$value = '111';
Test2::$value = '222';

print 'Test1::$value : ' . Test1::$value . '<br>';
print 'Test2::$value : ' . Test2::$value . '<br>';

Test1::$childValueOfTest1 = '333';
Test2::$childValueOfTest2 = '444';

print 'Test1::$childValueOfTest1 : ' . Test1::$childValueOfTest1 . '<br>';
print 'Test2::$childValueOfTest2 : ' . Test2::$childValueOfTest2 . '<br>';

class Test {
	static $value;
}

class Test1 extends Test {
	static $childValueOfTest1;
}

class Test2 extends Test {
	static $childValueOfTest2;
}


以上、よろしくお願いいたします。


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