self和static的區別

2021-10-10 16:02:22 字數 357 閱讀 1225

self引用的是當前類,static允許函式呼叫在執行時繫結呼叫類

簡單來說,就是使用self返回的值一直是初始類,而static的繼承類返回的值是離它最近的類內部的資料。

舉個例子:

self是乙個只認爸媽的小孩,而static是誰帶著它就認誰的小孩

<?php

class car

protected static function getmodel()

}car::model();

echo("\n");

class mercedes extends car

}mercedes::model();

self與static的區別

static 關鍵字,這裡作為作用域引用。類似於parent,self等關鍵字。與parent和self不同的是,parent 引用的是父類作用域,self引用的是當前類的作用域,而static引用的是全部靜態作用域,子類會覆蓋父類,self就是寫在哪個類裡面,實際呼叫的就是這個類.static代表...

php中static和self的區別

在閱讀一些框架的原始碼時發現了new static 和new self 甚是不解,後來查閱資料,才知道static採用了延遲繫結,能準確知道是父類還是子類的呼叫。這就是說static是個聰明的小孩,家裡的親戚的輩分他都能準確的叫出 而不是像他的兄弟self,只知道自己的親爹媽。例子如下 class ...

PHP 中 static 和 self 的區別

使用 self 或者 class 對當前類的靜態引用,取決於定義當前方法所在的類 使用static 不再被解析為定義當前方法所在的類,而是在實際執行時計算的。也可以稱之為 靜態繫結 因為它可以用於 但不限於 靜態方法的呼叫。靜態繫結是php 5.3.0,增加的乙個功能 用於在繼承範圍內引用靜態呼叫的...