課程
/后端開發
/PHP
/PHP進階篇
我看不懂self::$_object = new Car();
新建一個對象,賦值給一個靜態變量?
2017-01-23
源自:PHP進階篇 2-7
正在回答
個人理解,靜態變量也是變量,與動態變量的作用一樣,存儲信息等,當然也有自己的特性,比如,在類中,靜態的成員,可以在類未實例化之前就能使用,也就是說可以使用類名調用。結合單例設計模式,為了不讓用戶直接實例化對象,需要將構造函數隱藏,但是,我們還是需要能夠創建對象,這個時候就需要提供一個函數,這個函數不用對象也能調用, 也就是說能用類名調用, 我們知道靜態函數是不能訪問非靜態成員的, 那么就需要一個靜態變量保存這個類的實例,如果這個值是空,就實例化一個對象并賦值給他,否則直接返回該值,保證在運行期間此類只有一個對象存在。大神勿噴。
懷中貓 提問者
_pkm_ 回復 懷中貓 提問者
舉報
輕松學習PHP中級課程,進行全面了解,用PHP快速開發網站程序
1 回答關于類的構造函數定義為私有。
2 回答關于構造函數的問題
2 回答構造函數與析構造函數
3 回答構造函數和折構函數
2 回答析構函數和構造函數
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-01-23
個人理解,靜態變量也是變量,與動態變量的作用一樣,存儲信息等,當然也有自己的特性,比如,在類中,靜態的成員,可以在類未實例化之前就能使用,也就是說可以使用類名調用。結合單例設計模式,為了不讓用戶直接實例化對象,需要將構造函數隱藏,但是,我們還是需要能夠創建對象,這個時候就需要提供一個函數,這個函數不用對象也能調用, 也就是說能用類名調用, 我們知道靜態函數是不能訪問非靜態成員的, 那么就需要一個靜態變量保存這個類的實例,如果這個值是空,就實例化一個對象并賦值給他,否則直接返回該值,保證在運行期間此類只有一個對象存在。大神勿噴。