課程
/后端開發(fā)
/PHP
/PHP-面向?qū)ο?/a>
1-2的時候不加static的時候老師說定義的變量是類的屬性啊。現(xiàn)在加上static怎么還是類的屬性啊。那倆者還有什么區(qū)別????
2018-01-31
源自:PHP-面向?qū)ο?nbsp; 2-4
正在回答
你要明白整個流程你就明白他的區(qū)別。靜態(tài)屬性 靜態(tài)方法是一開始就已經(jīng)創(chuàng)建在內(nèi)存中了,而普通的方法屬性是實例化的時候動態(tài)分配內(nèi)存空間的。
不加static 我理解為'對象屬性',只有實例化對象出來后,才能使用這些屬性;加了static,就是'類屬性',不需要實例化對象就可以直接使用了;
一切都是為了偷懶。
你定義了一個‘人類’:這個人類有2條腿(正常人),這是屬性;會走路,會說話,這是方法、行為。
定義了這個人類后,你將來要用的。用的時候,你把這個抽象的類變成了一個具體的實例(new對象),比如‘麻花疼’。有一天,你說麻花疼這臭不要臉的又騙了我很多錢,我要派人砍他幾條腿去!砍幾條?一個人有幾條腿?這時你可以用$麻花疼->腿,麻花疼的腿的屬性來得到這個值。很顯然的,你安排小弟去給麻花疼卸3條腿是不對的,小弟會給你報錯的。
有一天你又說小李子的百度坑人上當(dāng)、干盡壞事,也給他卸幾條腿!卸幾條?你new 人類(‘李彥宏’);$李彥宏->腿,之后你知道小李子有幾條腿了。
到這里你發(fā)現(xiàn)里面的問題了,要知道一個正常人有幾條腿,沒必要具體到張三李四王二麻子,轉(zhuǎn)一圈再轉(zhuǎn)回來。直接從沒有實例化的‘人類’里取就行了。比如腿這個屬性,因為是常識性的,所有人都一樣的,所以定義類的時候直接定義就行了,前面加一個關(guān)鍵字static來表明它的與眾不同。
用的時候沒有必要實例化,你懂了吧。
怎樣用?人類->腿,這樣用?
這是錯誤的,“->”符號是給具體的對象用的。
沒有具體的對象,直接從類中取值,要用“::”符號: 人類::腿。
加上static是累的靜態(tài)屬性,不加則是普通屬性,靜態(tài)屬性不需要實例化類就可以調(diào)用,普通屬性必須實例化類后才能調(diào)用。
舉報
從面相過程到面向?qū)ο螅瑤闵钊肜斫饷嫦驅(qū)ο缶幊趟枷?,體驗編程的奧妙!
2 回答static不是靜態(tài)屬性么?
2 回答trait成員屬性問題
1 回答_set _get是為未聲明的屬性設(shè)計的
1 回答不是說$hd是私有的嗎,為什么var_dump($computer)還可以打印出$hd???
1 回答\ 不用換成 / 也可以啊,為什么要換。不是多此一舉嗎???
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-10-29
你要明白整個流程你就明白他的區(qū)別。靜態(tài)屬性 靜態(tài)方法是一開始就已經(jīng)創(chuàng)建在內(nèi)存中了,而普通的方法屬性是實例化的時候動態(tài)分配內(nèi)存空間的。
2018-07-22
不加static 我理解為'對象屬性',只有實例化對象出來后,才能使用這些屬性;加了static,就是'類屬性',不需要實例化對象就可以直接使用了;
2018-06-05
一切都是為了偷懶。
你定義了一個‘人類’:這個人類有2條腿(正常人),這是屬性;會走路,會說話,這是方法、行為。
定義了這個人類后,你將來要用的。用的時候,你把這個抽象的類變成了一個具體的實例(new對象),比如‘麻花疼’。有一天,你說麻花疼這臭不要臉的又騙了我很多錢,我要派人砍他幾條腿去!砍幾條?一個人有幾條腿?這時你可以用$麻花疼->腿,麻花疼的腿的屬性來得到這個值。很顯然的,你安排小弟去給麻花疼卸3條腿是不對的,小弟會給你報錯的。
有一天你又說小李子的百度坑人上當(dāng)、干盡壞事,也給他卸幾條腿!卸幾條?你new 人類(‘李彥宏’);$李彥宏->腿,之后你知道小李子有幾條腿了。
到這里你發(fā)現(xiàn)里面的問題了,要知道一個正常人有幾條腿,沒必要具體到張三李四王二麻子,轉(zhuǎn)一圈再轉(zhuǎn)回來。直接從沒有實例化的‘人類’里取就行了。比如腿這個屬性,因為是常識性的,所有人都一樣的,所以定義類的時候直接定義就行了,前面加一個關(guān)鍵字static來表明它的與眾不同。
用的時候沒有必要實例化,你懂了吧。
怎樣用?人類->腿,這樣用?
這是錯誤的,“->”符號是給具體的對象用的。
沒有具體的對象,直接從類中取值,要用“::”符號: 人類::腿。
2018-02-02
加上static是累的靜態(tài)屬性,不加則是普通屬性,靜態(tài)屬性不需要實例化類就可以調(diào)用,普通屬性必須實例化類后才能調(diào)用。