[PHP-users 22523]クラスの使い方について

溝口豊 mizoguci @ serdeen.co.jp
2004年 7月 8日 (木) 16:34:21 JST


こんにちは。溝口です。
PHPのクラスの使い方について分からないことがありますので質問させていただきます。

今回PHPのクラスを使用しようと思いサンプルを作ったのですが意図した結果が表示され
ませんでした。

以下はサンプルとして作ったコードです。

<?php
//クラスの定義
class TestClass
{
	var $m_date;		//日付
	var $m_value;		//値
	var $m_class_name;	//クラスの名前
	
	//コンストラクタ
	function TestClass()
	{
		$this->$m_date = date('Y-m-d');		//日時をセットする
		$this->$m_class_name = 'TestClass';	//クラス名を設定する
		$this->$m_value	= array();		//配列を初期化
	}
	
	//日付を描画する
	function printDate()
	{
		echo $this->$m_date;	//日付を描画する
		print('<br>');		//改行する
	}
	
	//値を追加する
	function addValue($value)
	{
		$index = sizeof($this->$m_value);	//添え字を決定する
		$this->$m_value[$index] = $value;	//値を追加する
	}
	
	//クラス名を描画する
	function printClassName()
	{
		echo $this->$m_class_name;	//クラス名を描画する
		print('<br>');			//改行する
	}
	
	//値を描画する
	function printValue()
	{
		for ($index = 0; $index < sizeof($this->$m_value); $index++) {	//配列の数だけ繰り返す
			echo $index.' '.$this->$m_value[$index];		//値を描画する
			print('<br>');						//改行する
		}
	}
}

	$MyClass = new TestClass;	//クラスを生成
	
	for ($index = 0; $index < 100; $index++) {	//100回繰り返す
		$MyClass->addValue(100 - $index);	//値を追加する
	}
	
	$MyClass->printDate();		//日付を描画する
	$MyClass->printClassName();	//クラスを描画する
	$MyClass->printValue();		//値を描画する
?>

サンプルを実行した結果は以下のようになりました。

1
1
0 1

希望した出力結果としては次のとおりだったのですがうまくいきませんでした。

2004-07-08
TestClass
0 100
1 99
  :
98 2
99 1

どなたかご存知の方がいらっしゃいましたらご教授願えないでしょうか。
よろしくお願い致します。

----
溝口豊  mizoguci @ serdeen.co.jp


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