1、static,----------靜態變量聲明與使用
a、類內部使用static變量要使用self關鍵字,變量使用要帶上$符號,格式爲:self::$some_var,類外部使用類名加作用域符號,格式爲app::$some_var;
b、靜態方法內使用靜態變量與靜態方法和const常量,不能使用非靜態變量與方法
c、非靜態方法內允許使用靜態變量和靜態方法
<?php
class app{
public static $some_var;
public $public_var;
function __construct(){
$this->some_var=1; //隱式聲明public變量
self::$some_var=2;//靜態變量
$this->public_var=1;
var_dump($this);
}
public static function getsomestatic(){
return (self::$some_var*5);
}
public function dump(){
echo self::getsomestatic()."---".(self::$some_var*5)."---".$this->public_var;
}
}
$app=new app();
echo "<br/>";
echo $app->getsomestatic()."---實例static some_var <br/>";
echo $app->dump()."<br/>";
echo app::$some_var."---類static some_var <br/>";
echo app::getsomestatic()."---類static some_var <br/>";
?>
self::$some_var=1;//靜態變量
輸出
object(app)#1 (2) { ["public_var"]=> int(1) ["some_var"]=> int(1) }
5---實例static some_var
5---5---1
1---類static some_var
5---類static some_var
self::$some_var=2;//靜態變量
輸出
object(app)#1 (2) { ["public_var"]=> int(1) ["some_var"]=> int(1) }
10---實例static some_var
10---10---1
2---類static some_var
10---類static some_var
2.const常量
a、類內部使用const常量要使用self關鍵字,變量使用不能帶上$符號,格式爲:self::some_var,類外部使用類名加作用域符號,格式爲app::some_var;
b、定義const常量不能使用任何關鍵字;
c、常量能被任何成員方法中使用
3.final關鍵字
a、final關鍵字只能修飾成員方法或者一個類,被final修飾的方法與類均不能被繼承