首頁 > 後端開發 > php教程 > php物件導向程式設計self和static的區別 matlab物件導向程式設計 c#物件導向程式設計思想 物件導向程式設計語言

php物件導向程式設計self和static的區別 matlab物件導向程式設計 c#物件導向程式設計思想 物件導向程式設計語言

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-07-29 08:50:42
原創
1335 人瀏覽過

在php的物件導向程式設計中,總是會遇到

class test{
 public static function test(){
  self::func();

  static::func();
 }

 public static function func(){}
}

登入後複製

可你知道self和static的差別?

其實差別很簡單,只要寫幾個demo就能懂:

Demo for self:

class Car
{
 public static function model(){
  self::getModel();
 }

 protected static function getModel(){
  echo "This is a car model";
 }
}

登入後複製

Car::model();

輸出

Class Taxi extends Car
{
 protected static function getModel(){
  echo "This is a Taxi model";
 }
}

登入後複製


可以發現,self在子類中還是會調用父類的方法

Demo for static

This is a car model
This is a car model
登入後複製


呼叫的是父類別的方法,但是父類別方法中呼叫的方法還會是子類別的方法(好繞嘴。)

在PHP5.3版本以前,static和self還是有一點區別,具體是什麼,畢竟都是7版的天下了。就不去了解了。

總結呢:self只能引用當前類別中的方法,而static關鍵字允許函數能夠在運行時動態綁定類別中的方法。

以上就介紹了php物件導向程式設計self和static的差別,包括了物件導向程式設計,static方面的內容,希望對PHP教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
使用 Vue Router 增強資料表
來自於 1970-01-01 08:00:00
0
0
0
java - springboot新手學習
來自於 1970-01-01 08:00:00
0
0
0
spring - JavaWeb中 Service 層的事務問題
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板