首頁 >後端開發 >PHP問題 >php中final和static的差別是什麼

php中final和static的差別是什麼

藏色散人
藏色散人原創
2021-09-16 09:32:221418瀏覽

php中final和static的差異:1、static是靜態變量,靜態變數只在局部函數域中存在,但當程式執行離開此作用域時,其值並不會遺失;2、final是用於函數的,屬於物件導向的用法,一旦使用,這個函數就無法更改和重載。

php中final和static的差別是什麼

本文操作環境:Windows7系統、PHP7.1版,Dell G3電腦

php中final與static的差異

static是靜態變量,靜態變數僅在局部函數域中存在,但當程式執行離開此作用域時,其值並不會遺失。

例如,你可以用來計算函數呼叫的累加次數。

<?PHP
function Test()
{
static $w3sky = 0;
echo $w3sky;
$w3sky++;
}
?>

靜態(static)關鍵字

本頁說明了用 static 關鍵字定義靜態方法和屬性。 static 也可用於定義靜態變數以及後期靜態綁定。請參閱上述頁面以了解 static 在其中的用法。

宣告類別屬性或方法為靜態,就可以不實例化類別而直接存取。靜態屬性不能透過一個類別已實例化的物件來存取(但靜態方法可以)。

靜態方法

由於靜態方法不需要透過物件即可調用,所以偽變數 $this 在靜態方法中不可用。

用靜態方式呼叫一個非靜態方法會拋出 Error。

在 PHP 8.0.0 之前,透過靜態方式呼叫非靜態方法這種用法已經被廢棄,並且會導致一個 E_DEPRECATED 層級的警告。

fainal 是用於函數的,屬於物件導向的用法,一旦使用,這個函數就無法更改和重載了。

PHP 5 新增了一個 final 關鍵字。如果父類別中的方法被宣告為 final,則子類別無法覆寫該方法。如果一個類別被宣告為 final,則不能被繼承。

推薦學習:《PHP影片教學

以上是php中final和static的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn