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
2020-12-09