成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP常用操作類實現(xiàn)——數(shù)據(jù)庫操作類

sshe / 958人閱讀

摘要:概述謝謝大家的收藏與贊,這是對我最大的鼓勵。這一系列文章主要是一些常用的類操作,回顧一下面向?qū)ο?,我一直致力于小白文章的撰寫,因為我也是小白,相信有人需要,希望讀者能夠喜歡。

概述
謝謝大家的收藏與贊,這是對我最大的鼓勵。

這一系列文章主要是一些PHP常用的類操作,回顧一下面向?qū)ο?,我一直致力于小白文章的撰寫,因為我也是小白,相信有人需要,希望讀者能夠喜歡。

說明

關(guān)于PHP語言實現(xiàn)各種操作類,網(wǎng)上都能夠找得到,但是質(zhì)量參差不齊,有的代碼不好懂,有時候看的眼花繚亂,所以我在這里統(tǒng)一作了一個整理(注意:是整理,每一種操作類,我至少會參考三份優(yōu)秀代碼,然后自己跑出來,而不是CV)

我會盡量遵守PSR規(guī)范,會有很詳細易懂的注釋

對于其中涉及到的相關(guān)知識點,比如設(shè)計模式,類型檢測、瀏覽器架構(gòu)、通信數(shù)據(jù)我也會簡單講講,并留下相關(guān)鏈接,希望讀者能夠細嚼慢咽

閱讀準(zhǔn)備

內(nèi)容涉及面向?qū)ο?、?shù)據(jù)庫、文件操作、購物車、分頁、圖像處理、JSON數(shù)據(jù)接口,你可能需要有一點知識基礎(chǔ),當(dāng)然,這些內(nèi)容都是獨立的,可以選擇性的參看。

Source Code
DATABASE = $dbname;
        /*    判斷數(shù)據(jù)庫是否連接     */
        if(!self::$resource){
            self::$resource = mysqli_connect($this->HOST,$this->USER,$this->ROOT,$this->DATABASE);
            /*    如果數(shù)據(jù)庫連接失敗        */
            if(!self::$resource){
                throw new Execption("mysql connect error".mysqli_connect_error());
            }
            /*   設(shè)置編碼   */
            mysqli_query(self::$resource,"set names UTF8");
        }
        return self::$resource;
    }



}

/**********Coding 1*********************
$res = DB::getInstance()->connect("base");    
print_r($res);
die;
********************************/


/**********Coding 2*********************
 $res = new DB();
 $res::getInstance()->connect();  
 因為構(gòu)造函數(shù)的私有性,這一句會產(chǎn)生fatal error 錯誤
********************************/


/**********Coding 3*********************
$a = DB::getInstance();
$a->connect();
                        
$b = DB::getInstance();
$b->connect();

echo "
";
print_r($a);
print_r($b);

只會執(zhí)行一次構(gòu)造函數(shù),說明$a $b是類的同一個實例
********************************/
解析

如果不看構(gòu)造函數(shù)getInstance方法,其實可以看的出來,實現(xiàn)數(shù)據(jù)庫操作類很簡單,只需要把數(shù)據(jù)庫連接函數(shù)的參數(shù)當(dāng)作類成員變量,然后調(diào)用就行了,但是這里用了一個簡單的設(shè)計模式——單例模式,總之加上它,代碼會更便捷、健壯,下面簡單講講。

為什么使用單例模式?

其實從技術(shù)上考慮主要是考慮節(jié)省內(nèi)存資源(因為訪問數(shù)據(jù)庫的話我們實例一次就夠了,不需要重復(fù)實例[2019.5.28 update]),提升系統(tǒng)性能,但實際能夠感受到的就是更方便,而且逼格高一些,所以用它。

什么是單例模式?

舉個例子,就是大樓只有一個入口,方便控制,用面向?qū)ο髞碚f,就是一個類只有一個實例,方便管理。

代碼部分是怎么實現(xiàn)單例模式的?

首先聲明一個私有構(gòu)造函數(shù),這樣就不能在外面使用 new 來實例化多個對象了,你可以用coding 2的代碼試一試,會報錯

構(gòu)造一個公共入口來獲取類的實例,總的有實例可用撒,注意這個self指的是當(dāng)前類,instanceof是檢查當(dāng)前變量是否為類的實例

如何檢查單例效果?

你可以用coding 3的代碼查看輸出結(jié)果,然后你會發(fā)現(xiàn)構(gòu)造函數(shù)只執(zhí)行了一次,說明,第一次實例化對象之后,后面的變量對對象的引用是一致的,說明實例實際上只有一個。

為什么getInstance方法是靜態(tài)的呢?

函數(shù)也是變量,靜態(tài)化變量,不管引用多少次,都不會重復(fù)生成,比較節(jié)省空間,這里并不考慮多線程的問題。

參考鏈接

PHP 單例模式解析和實戰(zhàn)
PHP 設(shè)計模式 單例模式
單例模式5種實現(xiàn)方式
語言中,靜態(tài)方法和非靜態(tài)方法你懂多少?

結(jié)語

有沒懂的或者又覺得不對的,歡迎大家留言。

最后

我會把源代碼放在GitHub主頁上,別擔(dān)心,是中文,有需要的可以訪問下載.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17607.html

相關(guān)文章

  • PHP常用操作實現(xiàn)——數(shù)據(jù)庫操作

    摘要:概述謝謝大家的收藏與贊,這是對我最大的鼓勵。這一系列文章主要是一些常用的類操作,回顧一下面向?qū)ο?,我一直致力于小白文章的撰寫,因為我也是小白,相信有人需要,希望讀者能夠喜歡。 概述 謝謝大家的收藏與贊,這是對我最大的鼓勵。這一系列文章主要是一些PHP常用的類操作,回顧一下面向?qū)ο?,我一直致力于小白文章的撰寫,因為我也是小白,相信有人需要,希望讀者能夠喜歡。 說明 關(guān)于PHP語言實現(xiàn)...

    wmui 評論0 收藏0
  • PHP常用操作實現(xiàn)——驗證碼

    摘要:驗證碼是什么驗證碼是自動區(qū)分計算機和人類的圖靈測試的縮寫,是一種區(qū)分用戶是計算機和人的全自動程序。驗證碼的種類文字?jǐn)?shù)字字母統(tǒng)稱字符圖片語音手勢對于不同的驗證碼,驗證的設(shè)計思路是一致的,我們以字符為例。 概述 謝謝大家的收藏與贊,這是對我最大的鼓勵。 這一系列文章主要是一些PHP常用的類操作,回顧一下面向?qū)ο?,我一直致力于小白文章的撰寫,因為我也是小白,相信有人需要,希望讀者能夠喜歡。...

    Jrain 評論0 收藏0
  • PHP常用操作實現(xiàn)——通信數(shù)據(jù)封裝

    摘要:方式是最常用也是最直接的通常用于方法,其實我認(rèn)為中的表單實質(zhì)上也是方式,但這種傳輸方式數(shù)據(jù)有限,也不規(guī)范,只適合一些簡單場景。如何封裝上面講了,和是目前主流的通信數(shù)據(jù)格式,下面就來講講如何封裝,方便運用。 謝謝大家的收藏與贊,這是對我最大的鼓勵。 必要性 不管在B/S架構(gòu)中,還是C/S架構(gòu)中,兩端的數(shù)據(jù)通信(注:這里的通信是指的網(wǎng)絡(luò)請求和回復(fù)操作)都無可避免,因為沒有數(shù)據(jù)便沒有內(nèi)容,沒...

    YancyYe 評論0 收藏0
  • PHP常用操作實現(xiàn)——通信數(shù)據(jù)封裝

    摘要:方式是最常用也是最直接的通常用于方法,其實我認(rèn)為中的表單實質(zhì)上也是方式,但這種傳輸方式數(shù)據(jù)有限,也不規(guī)范,只適合一些簡單場景。如何封裝上面講了,和是目前主流的通信數(shù)據(jù)格式,下面就來講講如何封裝,方便運用。 謝謝大家的收藏與贊,這是對我最大的鼓勵。 必要性 不管在B/S架構(gòu)中,還是C/S架構(gòu)中,兩端的數(shù)據(jù)通信(注:這里的通信是指的網(wǎng)絡(luò)請求和回復(fù)操作)都無可避免,因為沒有數(shù)據(jù)便沒有內(nèi)容,沒...

    mudiyouyou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<