亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

PHP 靜態關鍵字static

<?php
class?glass{
	public?$name;
	public?$height;
	public?$weight;
	public?$color;


	public?static?$capacity;//定義靜態變量capacity?容量




	function?__construct($name,$height,$weight,$color,$capacity)
	//?問題1:構造函數前面是function,不是public


	{
		$this->name=$name;
		$this->height=$height;
		$this->weight=$weight;
		$this->color=$color;
		self::$capacity=$capacity;


		echo?$this->name."杯子的高度為"."$height"."\n"."$this->name"."杯子的顏色為"."$color"."\n"."$this->name"."杯子的容量為"."$capacity"."\n"."\n";
	}


	function?__destruct(){
		echo?"銷毀".$this->name."杯子"."\n";
	}


	public?static?function?ChangeCapacity($newcapacity){
		self::$capacity=$newcapacity;
		//?echo?"$this->name"."$newcapacity"."\n";
	}
}






$glass1=new?glass("num1","500mm","100mm","藍色","500ml");
//?$glass2=new?glass("num2","300mm","500mm","黑色","750ml");


//?$glass1->ChangeCapacity("900ml");




//問題2:修改靜態成員參數值的方法
//?應使用?	類名::成員參數("參數值");
//輸出?		echo?類名::$成員參數;
glass::ChangeCapacity("123");
echo?glass::$capacity."\n";
$glass3=new?glass("num3","100mm","100mm","白色","520ml");
?>

在下面修改了glass類中capacity參數為123,但是后面再次實例化對象后,輸出的$capacity值仍為定義的"520ml",而不是修改后的值:123


正在回答

1 回答

http://img1.sycdn.imooc.com//5fd0899500011ebd02550039.jpg你這里這樣寫相當于給靜態變量重新賦值,你想要的效果是構造函數的參數值等于靜態變量的值,應該寫成? ?$capacity?=?self::$capacity;

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
PHP面向對象編程
  • 參與學習       70193    人
  • 解答問題       369    個

從容應對面試官的知識寶典,帶你握面向對象的最重要的核心能力

進入課程

PHP 靜態關鍵字static

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號