摘要:本文介紹面向?qū)ο笾徐o態(tài)屬性和靜態(tài)方法的調(diào)用實例分析了靜態(tài)屬性和靜態(tài)方法的原理與調(diào)用技巧需要的朋友可以參考下。簡介這里分析了面向?qū)ο笾徐o態(tài)屬性和靜態(tài)方法的調(diào)用。因為靜態(tài)屬性存放的位置是在類里,調(diào)用方法為類名屬性名靜態(tài)方法不需要實例化即可調(diào)用。
簡介本文介紹php面向?qū)ο笾衧tatic靜態(tài)屬性和靜態(tài)方法的調(diào)用,實例分析了static靜態(tài)屬性和靜態(tài)方法的原理與調(diào)用技巧,需要的朋友可以參考下。
這里分析了php面向?qū)ο笾衧tatic靜態(tài)屬性和靜態(tài)方法的調(diào)用。關(guān)于它們的調(diào)用(能不能調(diào)用,怎么樣調(diào)用),需要弄明白了他們在內(nèi)存中存放位置,這樣就非常容易理解了。靜態(tài)屬性、方法(包括靜態(tài)與非靜態(tài))在內(nèi)存中,只有一個位置(而非靜態(tài)屬性,有多少實例化對象,就有多少個屬性)。
示例age = "Corwien"; // 測試調(diào)用靜態(tài)方法時,不會執(zhí)行構(gòu)造方法,只有實例化對象時才會觸發(fā)構(gòu)造函數(shù),輸出下面的內(nèi)容。 echo __LINE__,__FILE__,"總結(jié)
"; } static public function tell(){ echo self::$name;//靜態(tài)方法調(diào)用靜態(tài)屬性,使用self關(guān)鍵詞 //echo $this->height;//錯。靜態(tài)方法不能調(diào)用非靜態(tài)屬性 //因為 $this代表實例化對象,而這里是類,不知道 $this 代表哪個對象 } public function say(){ echo self::$name . "我說話了"; //普通方法調(diào)用靜態(tài)屬性,同樣使用self關(guān)鍵詞 echo $this->height; } } $p1 = new Human(); $p1->say(); $p1->tell();//對象可以訪問靜態(tài)方法 echo $p1::$name;//對象訪問靜態(tài)屬性。不能這么訪問$p1->name //因為靜態(tài)屬性的內(nèi)存位置不在對象里 Human::say();//錯。say()方法有$this時出錯;沒有$this時能出結(jié)果 //但php5.4以上會提示 /* 調(diào)用類的靜態(tài)函數(shù)時不會自動調(diào)用類的構(gòu)造函數(shù)。 測試方法,在各個函數(shù)里分別寫上下面的代碼 echo __LINE__,__FILE__,"
"; 根據(jù)輸出的內(nèi)容,就知道調(diào)用順序了。 */ // 調(diào)用靜態(tài)方法,不會執(zhí)行構(gòu)造方法,只有實例化對象時才會觸發(fā)構(gòu)造函數(shù),輸出構(gòu)造方法里的內(nèi)容。 Human::tell(); ?>
(1)、靜態(tài)屬性不需要實例化即可調(diào)用。因為靜態(tài)屬性存放的位置是在類里,調(diào)用方法為"類名::屬性名";
(2)、靜態(tài)方法不需要實例化即可調(diào)用。同上
(3)、靜態(tài)方法不能調(diào)用非靜態(tài)屬性。因為非靜態(tài)屬性需要實例化后,存放在對象里;
(4)、靜態(tài)方法可以調(diào)用非靜態(tài)方法,使用 self 關(guān)鍵詞。php里,一個方法被self:: 后,它就自動轉(zhuǎn)變?yōu)殪o態(tài)方法;
(5)、調(diào)用類的靜態(tài)函數(shù)時不會自動調(diào)用類的構(gòu)造函數(shù)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22194.html
摘要:靜態(tài)方法和屬性靜態(tài)方法是以類作為作用域的函數(shù)。靜態(tài)方法不能訪問這個類中的普通屬性,因為那些屬性屬于一個對象,但可以訪問靜態(tài)屬性。因此靜態(tài)方法和屬性又被稱為類變量和屬性,也就不能在靜態(tài)方法中使用偽變量。引入了延遲靜態(tài)綁定的概念。 靜態(tài)方法和屬性 靜態(tài)方法是以類作為作用域的函數(shù)。靜態(tài)方法不能訪問這個類中的普通屬性,因為那些屬性屬于一個對象,但可以訪問靜態(tài)屬性。如果修改了一個靜態(tài)屬性,那么這...
摘要:函數(shù)內(nèi)的變量靜態(tài)變量的理解靜態(tài)變量類型說明符是。靜態(tài)變量雖在程序的整個執(zhí)行過程中始終存在,但是在它作用域之外不能使用。靜態(tài)變量并不是說其就不能改變值,不能改變值的量叫常量。 函數(shù)內(nèi)的static變量 static靜態(tài)變量的理解 靜態(tài)變量 類型說明符是static。靜態(tài)變量屬于靜態(tài)存儲方式,其存儲空間為內(nèi)存中的靜態(tài)數(shù)據(jù)區(qū)(在 靜態(tài)存儲區(qū)內(nèi)分配存儲單元),該區(qū)域中的數(shù)據(jù)在整個程序的運行期間...
摘要:類與對象基本概念如果在之后跟著的是一個包含有類名的字符串,則該類的一個實例被創(chuàng)建。如果該類屬于一個名字空間,則必須使用其完整名稱。如果一個類被聲明為,則不能被繼承。命名空間通過關(guān)鍵字來聲明。 類與對象 基本概念 new:如果在 new 之后跟著的是一個包含有類名的字符串,則該類的一個實例被創(chuàng)建。如果該類屬于一個名字空間,則必須使用其完整名稱。 Example #3 創(chuàng)建一個實例 ...
摘要:首先闡明結(jié)論,在中指向定義了當(dāng)前被調(diào)用方法的類,指向調(diào)用當(dāng)前靜態(tài)方法的類。下面的例子更好的說明了和之間的差異后者使用了的后期靜態(tài)綁定指向調(diào)用方法的當(dāng)前類 首先闡明結(jié)論,在PHP中 self指向定義了當(dāng)前被調(diào)用方法的類, static指向調(diào)用當(dāng)前靜態(tài)方法的類。 接下來通過一個例子來證明上面的結(jié)果 class A { public static $_a = Class A; ...
摘要:一面向?qū)ο蟮母拍钍裁词敲嫦驅(qū)ο笫篱g萬物皆對象,抽象的也是對象,一切可見或不可見都是對象對象的基本組成對象包含兩個部分對象的組成元素是對象的數(shù)據(jù)模型,用于描述對象的數(shù)據(jù)又稱為對象的屬性,或者對象的成員變量對象的行為是對象的行為模型,用于描述對 一、面向?qū)ο蟮母拍?1.1 什么是面向?qū)ο?object oriented) ?????世間萬物皆對象,抽象的也是對象,一切可見或不可見都是對象 ...
閱讀 2566·2021-11-23 09:51
閱讀 3363·2021-11-22 15:22
閱讀 1876·2021-11-18 13:22
閱讀 2266·2021-09-24 09:48
閱讀 1314·2019-08-29 13:58
閱讀 1307·2019-08-26 13:39
閱讀 2450·2019-08-26 10:48
閱讀 3037·2019-08-26 10:21