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