ホームに戻る(Kyoroの部屋)
PHPだぜ(Ming)に戻る



PHPのクラスは引数渡しか参照渡しか

PHPのクラスは引数渡しなのか参照渡しなのかをしらべます。 言語によって参照するか値を渡すかは異ります、 例えばJAVAやDのクラスは参照渡しですが、C++などは引数渡しです。 PHPはどのようになっているのでしょうか。
		class A
		{
		var $cont;
		}
		
		$A = new A();
		$B = $A;
		$A->cont ="値を代入した";
		print $A->cont;
		print $B->cont;
		
実行結果
結果:クラスは引数渡しでした。 (PHPの引数もクラスも全て引数渡しのようです。)
PHPのクラスの参照を渡す
&マークを付けると参照を渡す事ができるようです
		class A
		{
		var $cont;
		}
		
		$A = new A();
		$B = &$A;
		$A->cont ="値を代入した";
		print $A->cont;
		print $B->cont;
		
実行結果

override とoverload

とりあえずPHPではクラスの多重継承やインターフェイスの類は扱っていないようです (私が知らないだけかも知れません)。しかし、そのようなことは気にせずにオーバーライド についていくつか確認をとることにしましょう。
		
		class A
 		{
 		  function View()
 		  {
 		     print "class A";
  		 }
 		}
		
		class B extends A
		{
 		   function View()
			{
			print "Class B";
			}
		    function Option()
			{
			print "ClassBOption";
			}
		}
		
		$A = new A();
		$B = new B();
		$A->View();
		$B->View();
		
		$A = $B;
		$A->View();
		$A->Option();
		
実行結果 親クラスに子クラスを代入($A = $B)としたときは、親クラスにキャストされるのではなく まったく新しいクラス$Aに変わってしまっていることに注意。

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル