[PHP-users 18925]Re: $thisの扱い、代替手段について

Takeo Matumoto hac20680 @ rio.odn.ne.jp
2003年 11月 14日 (金) 19:54:03 JST


返信遅れまして申し訳ありません、松本です。

例えば、あるインスタンスのフィールドの値を元に、別のインスタンスを
初期化するような場合です、以下にテストコードを示します。

<?php
	
	class test1{
		
		var $a = "testtest";
		var $b = "TESTTEST";
		
		function getA(){
			return $this->a;
		}
		
		function getB(){
			return $this->b;
		}
	
		function createTest2(){
			return new test2($this);
		} 
	}
	
	class test2{
		
		var $a;
		var $b;
		
		function test2($test1){
			
			$a = $test1->getA();//test1クラスのインスタンスのフィールド値を元に、
			$b = $test1->getB();//test2クラスのインスタンスフィールドを初期化
		}
		
		function getA(){
			return $this->a;
		}
		function getB(){
			return $this->b;
		}
		
		
	}
	
	$test1 =  new test1();
	$test2 = $test1->createTest2();
	
	$a = $test2->getA();
	$b = $test2->getB();
	
	print($a);
	print($b);
	
	



?>

これを実行すると何も表示されません。
($test2->a,$test2->bが期待した$test1->a,$test2->bの値を受け取れていません)

これを見ますと、参照渡しもできていませんし、値渡しさえできていないように思います。


 





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