在php的物件導向程式設計中,總會遇到
class test
public static function func(){}
}
可你知道self和static的區別麼?
其實區別很簡單,只需要寫幾個demo就能懂:
class car
protected static function getmodel()
}car::model();
class taxi extends car
}taxi::model();
得到輸出
this is a car model
this is a car model
可以發現,self在子類中還是會呼叫父類的方法
class car
protected static function getmodel()
}car::model();
class taxi extends car
}taxi::model();
得到輸出
this is a car model
this is a taxi model
可以看到,在呼叫static
,子類哪怕呼叫的是父類的方法,但是父類方法中呼叫的方法還會是子類的方法(好繞嘴。。)
在php5.3版本以前,static和self還是有一點區別,具體是什麼,畢竟都是7版本的天下了。就不去了解了。
總結呢就是:self
只能引用當前類中的方法,而static
關鍵字允許函式能夠在執行時動態繫結類中的方法。
參考
物件導向 類和引數self介紹
1.什麼是物件?物件指的是記憶體中儲存指定資料的一塊區域 1.1.python就是一門物件導向的程式語言,可這樣理解語言中的所有操作操作都是通過物件進行的 1.2.面向過程 它指將我們的程式分解為乙個個步驟,通過對每個步驟的抽象來完成程式,但這種編寫方式只適用乙個功能,如果要實現別的功能,往往復用性...
PHP中self 和 this 的用法
在訪問php類中的成員變數或方法時,1.類外部呼叫 如果被引用的變數或者方法被宣告成const 定義常量 或者static 宣告靜態 那麼就必須使用操作符 反之如果被引用的變數或者方法沒有被宣告成const或者static,那麼就必須使用操作符 2.類內部呼叫 如果從類的內部訪問const或者sta...
php物件導向分頁,PHP中物件導向的分頁類
page new page 53,10 p page rendor echo var dump p echo 分頁類 class page protected url url protected pagecount 總頁數 protected total 總條數 protected num 每頁顯示...