static變數、public變數、private變數、protected變數的使用方法-PHP
PHP的物件有4種定義變數的可用範圍
這些定義方法分別是 static 、 public 、 private 、 protected
而使用範圍由大到小剛好也是
static(靜態變數) > public(公有變數) > protected > private(私有變數)
static(靜態變數):使用時不需要特別建立物件,就可以直接使用;例如:類別名稱::$static變數;
public(公有變數):必須建立物件後才可以使用,但是可以在類別以外的地方做使用;例如:$變數 = new 類別(); $變數->public變數;(不需加$字號)
protected:必須建立物件後才可以使用,不可以在類別以外的地方做使用,但是可以被繼承並在子類別使用,範例如下
private(私有變數):必須建立物件後才可以使用,只可以在這個類別內使用且不能被繼承
class Father{
//不需建立物件可以直接使用
static $static_value = "static";
//需要建立物件,但是在類別以外也可以用
public $public_value = "public";
//只有這個類別才能使用
private $private_value = "private";
//只有這個類別和子類別才能使用
protected $protected_value = "protected";
//private 變數只能在類別內的函數使用
function getprivate(){
return $this->private_value;
}
}
// static 變數不需建立物件可以直接使用
echo Father::$static_value;
//建立後可以直接呼叫 public 變數讓類別外的函數使用
$testFather = new Father();
echo $testFather->public_value;
//使用protected變數的繼承特性之前,必須先建立子類別來繼承父類別
class son extends Father{
function __construct(){
//可直接從父類別取得變數
echo $this->protected_value."子類別";
}
function testextend(){
return $this->protected_value."來自testextend";
}
}
//當子物件被建立時會直接從父類別取得變數,下面是兩種不同的做法
$testSon = new son();
echo $testSon->testextend();
//private 變數只能在類別內的函數使用,不能像 public 變數直接使用也無法被繼承
// echo $testFather->private_value; 這行會失敗
echo $testFather->getprivate();
如果覺得對你有幫助的話. 請幫小弟按個讚吧~
文章同步發布於:
static變數、public變數、private變數、protected變數的使用方法-PHP
留言列表