第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

沒有完全明白,吼吼??!

class Car {
? ?private function __construct() {
? ? ? ?echo 'object create';
? ?}

? ?private static $_object = null;
? ?public static function getInstance() {
? ? ? ?if (empty(self::$_object)) {
? ? ? ? ? ?self::$_object = new Car(); //內(nèi)部方法可以調(diào)用私有方法,因此這里可以創(chuàng)建對象
? ? ? ?}
? ? ? ?return self::$_object;
? ?}
}
//$car = new Car(); //這里不允許直接實例化對象
$car = Car::getInstance(); //通過靜態(tài)方法來獲得一個實例

正在回答

6 回答

class Car {//這是一個CAR類
? ?private function __construct() {//這是類的構(gòu)造方法,私有,決定了外部不能直接實例化CAR類
? ? ? ?echo 'object create';
? ?}
//類既然造了,肯定要用,咋辦捏
? ?private static $_object = null;//先定義一個私有靜態(tài)變量,內(nèi)部才能訪問,初始值為NULL,啥都沒有
? ?public static function getInstance() {//方法為公共靜態(tài)的,外部可以直接用類名::方法名訪問
? ? ? ?if (empty(self::$_object)) {//先判斷變量是不是存著東西了(程序里曾實例化了保存過),沒東西才執(zhí)行if里頭的,如果有了,表示已經(jīng)實例化過這個類,不用再實例化了,意義在于俗稱單例模式,保證整個程序中只存在一個該類的實例化對象
? ? ? ? ? ?self::$_object = new Car(); //內(nèi)部方法可以調(diào)用私有方法,因此這里可以創(chuàng)建對象
? ? ? ?}
? ? ? ?return self::$_object;//返回該靜態(tài)變量,這樣通過該方法就能得到實例化后的類。如果沒實例化過,返回的就是新得到的實例。如果以前實例過,返回的就是以前已經(jīng)曾經(jīng)實例化好的。意義前頭已說明。
? ?}
}
//$car = new Car(); //這里不允許直接實例化對象
$car = Car::getInstance(); //通過靜態(tài)方法來獲得一個實例

關(guān)鍵點:類中的靜態(tài)屬性作用類似于全局,深入理解可詳搜索下堆棧區(qū)存放,不理解也不影響,只需知道它不同于一般函數(shù)變量使用后就被釋放,所以方法中判斷它是否empty的意義就在于此,實現(xiàn)單例功能。

常用于框架底層一些服務(wù)型的類,只需實例一次,或只能被實例一次的情況。

4 回復(fù) 有任何疑惑可以回復(fù)我~
#1

五十歲的灰哥 提問者

非常感謝!it培訓(xùn)這樣牛人必不可少
2016-10-22 回復(fù) 有任何疑惑可以回復(fù)我~

哪位大神能不怕麻煩,給每一句都注釋一下。

0 回復(fù) 有任何疑惑可以回復(fù)我~

?public static function getInstance() {? //聲明一個公有的靜態(tài)方法? 這個方法的名字牛B,也是唬人的
? ? ? ?if (empty(self::$_object)) {? //判斷類本身里面(self::,靜態(tài)不用$this->)剛才的那個$_object是(否)為空。如果為真-----》執(zhí)行下面的方法
? ? ? ? ? ?self::$_object = new Car(); // 實例化,也就是創(chuàng)建對象?內(nèi)部方法可以調(diào)用私有方法,因此這里可以創(chuàng)建對象
? ? ? ?}
? ? ? ?return self::$_object; //如果已經(jīng)存在,就返回。。。這里不懂了
? ?}
}

0 回復(fù) 有任何疑惑可以回復(fù)我~

private static $_object = null; 聲明一個私有的靜態(tài)變量?這里$_object 命名是唬人的嗎?用下劃線給小白沖擊太大了

0 回復(fù) 有任何疑惑可以回復(fù)我~

? private function __construct() {
? ? ? ?echo 'object create';
? ?}

構(gòu)造函數(shù) 輸出object create

0 回復(fù) 有任何疑惑可以回復(fù)我~

注釋都有,咋不懂了

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

五十歲的灰哥 提問者

對于小白來說是咋看都不會懂滴
2016-10-22 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
PHP進階篇
  • 參與學(xué)習(xí)       181940    人
  • 解答問題       2668    個

輕松學(xué)習(xí)PHP中級課程,進行全面了解,用PHP快速開發(fā)網(wǎng)站程序

進入課程

沒有完全明白,吼吼??!

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號