最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析PHP的靜態(tài)成員函數(shù)效率更高的原因

 更新時(shí)間:2014年06月13日 15:48:39   投稿:shichen2014  
很多php開(kāi)發(fā)人員都知道, 使用類的靜態(tài)成員函數(shù)效率比類的普通成員函數(shù)的要高,本文從應(yīng)用層次分析這個(gè)問(wèn)題,需要的朋友可以參考下

很多php開(kāi)發(fā)人員都知道, 使用類的靜態(tài)成員函數(shù)效率比類的普通成員函數(shù)的要高,本文從應(yīng)用層次分析這個(gè)問(wèn)題

下面是一個(gè)范例:

復(fù)制代碼 代碼如下:
<?php // php靜態(tài)方法測(cè)試
header('Content-Type: text/html; charset=utf-8');
class xclass{
     public static $var1 = '1111111111111111';
     public $var2 = 'aaaaaaaaaaaaa';
     public function __construct()
    {
         $this -> var2 = 'bbbbbbbbbbbbbbbb';
         }
     public static function secho1()
    {
         echo self :: $var1 . '<hr />';
         }
     public function secho2()
    {
         echo $this -> var2 . '<hr />';
         }
     public function secho3()
    {
         echo 'cccccccccccccc<hr />';
         }
     }
 xclass :: secho1();
 xclass :: secho3();
 echo "------------------------------<br />";
 $xc = new xclass();
 $xc -> secho1();
 $xc -> secho2();
 ?>

認(rèn)真看上面的范例,會(huì)發(fā)現(xiàn)一個(gè)有趣的地方,secho1()定義為靜態(tài)方法后, 在動(dòng)態(tài)類的對(duì)像實(shí)例中仍可以引用為動(dòng)態(tài)方法,而secho3()也可以被當(dāng)作靜態(tài)成員函數(shù),從這個(gè)層面,不難理解為什么說(shuō)靜態(tài)成員函數(shù)比動(dòng)態(tài)的快。

可能是由于兼容性原因,php的類成員其實(shí)并無(wú)明顯的動(dòng)靜態(tài)之分,所有成員在沒(méi)明確聲明的情況下都會(huì)被當(dāng)成靜態(tài)成員存放在特定的內(nèi)存區(qū)中,所以調(diào)用靜態(tài)成員函數(shù)就和調(diào)用普通函數(shù)一樣,速度很快。

但調(diào)用動(dòng)態(tài)類則不同,它要以這個(gè)類結(jié)構(gòu)作為樣本,在內(nèi)存中重新生成一個(gè)對(duì)象實(shí)例,所以多了一個(gè)過(guò)程,這對(duì)于簡(jiǎn)單的類來(lái)說(shuō),可能不算什么,但對(duì)于復(fù)雜的類來(lái)說(shuō)這是明顯影響效率的。

有人會(huì)擔(dān)心,使用靜態(tài)方法會(huì)不會(huì)造成內(nèi)存占用過(guò)多,其實(shí)從上面分析可以知道,你不聲明靜態(tài)方法,系統(tǒng)依然會(huì)把成員當(dāng)成靜態(tài),因此對(duì)于一個(gè)完全靜態(tài)方法的類和一個(gè)完全動(dòng)態(tài)但沒(méi)聲明實(shí)例對(duì)象的類占用內(nèi)存幾乎是一樣的,所以對(duì)于比較直接的邏輯,都建議直接用靜態(tài)成員方法,當(dāng)然,一些復(fù)雜或?qū)ο窕黠@的邏輯,如果完全用靜態(tài)類也不是沒(méi)可能,但那樣就失去類的意義了,如果這樣,何必OOP,按用途,靜態(tài)方法特別適用于MVC模式的邏輯類中。

 

相關(guān)文章

  • php5 non-thread-safe和thread-safe這兩個(gè)版本的區(qū)別分析

    php5 non-thread-safe和thread-safe這兩個(gè)版本的區(qū)別分析

    從PHP5.2.10版本開(kāi)始(現(xiàn)在有PHP5.2.10和5.3兩個(gè)版本),有None-Thread Safe與Thread Safe兩種版本的可供選擇,這兩種版本有何不同,作為使用者來(lái)說(shuō)又應(yīng)該如何選擇呢?下面聚友將為您講述。
    2010-03-03
  • php中的登陸login

    php中的登陸login

    php中的登陸login...
    2007-01-01
  • PHP文件緩存類實(shí)現(xiàn)代碼

    PHP文件緩存類實(shí)現(xiàn)代碼

    這篇文章主要介紹了PHP文件緩存類實(shí)現(xiàn)代碼,php中緩存分類數(shù)據(jù)庫(kù)緩存,文件緩存和內(nèi)存緩存,對(duì)php緩存感興趣的朋友可以學(xué)習(xí)學(xué)習(xí)下面的文章。
    2015-10-10
  • PHP實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的三種方式

    PHP實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的三種方式

    在PHP中,實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)有多種方法,這些方法包括使用HTTP頭信息、JavaScript以及Meta標(biāo)簽,本文給大家介紹了PHP實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的三種方式,并通過(guò)代碼講解的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • php封裝的pdo數(shù)據(jù)庫(kù)操作工具類與用法示例

    php封裝的pdo數(shù)據(jù)庫(kù)操作工具類與用法示例

    這篇文章主要介紹了php封裝的pdo數(shù)據(jù)庫(kù)操作工具類與用法,結(jié)合實(shí)例形式分析了php封裝的pdo數(shù)據(jù)庫(kù)連接、增刪改查、錯(cuò)誤處理、關(guān)閉連接等操作及相關(guān)使用技巧,需要的朋友可以參考下
    2019-05-05
  • php實(shí)現(xiàn)圖片上傳、剪切功能

    php實(shí)現(xiàn)圖片上傳、剪切功能

    這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)圖片上傳、剪切功能,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2016-05-05
  • 10款PHP開(kāi)源商城系統(tǒng)匯總介紹

    10款PHP開(kāi)源商城系統(tǒng)匯總介紹

    本文給大家推薦了10款目前非?;鸬腜HP開(kāi)源商城系統(tǒng),排名不分先后,有需要做電子商務(wù)平臺(tái)的小伙伴可以參考下。
    2015-07-07
  • php常用的安全過(guò)濾函數(shù)集錦

    php常用的安全過(guò)濾函數(shù)集錦

    由于越來(lái)越多的項(xiàng)目開(kāi)始使用框架,所以,很多的程序員也不在關(guān)心安全的問(wèn)題!因?yàn)榭蚣芤呀?jīng)幫我們幾乎完美的處理了!但是,個(gè)人認(rèn)為,我們還是需要了解一下常用的安全處理函數(shù)!
    2014-10-10
  • 讓你的WINDOWS同時(shí)支持MYSQL4,MYSQL4.1,MYSQL5X

    讓你的WINDOWS同時(shí)支持MYSQL4,MYSQL4.1,MYSQL5X

    讓你的WINDOWS同時(shí)支持MYSQL4,MYSQL4.1,MYSQL5X...
    2006-12-12
  • PHP 數(shù)組和字符串互相轉(zhuǎn)換實(shí)現(xiàn)方法

    PHP 數(shù)組和字符串互相轉(zhuǎn)換實(shí)現(xiàn)方法

    PHP 中由于數(shù)組和字符串這兩種變量類型是如此常用,以至于 PHP 具有兩個(gè)函數(shù),可以在字符串和數(shù)組之間互相進(jìn)行轉(zhuǎn)換
    2013-03-03

最新評(píng)論

鹤壁市| 吴忠市| 聂荣县| 太仆寺旗| 都兰县| 革吉县| 达拉特旗| 广东省| 城步| 平遥县| 衡水市| 汤阴县| 静乐县| 会理县| 米易县| 肇东市| 稷山县| 方城县| 高安市| 甘德县| 武清区| 榆树市| 武鸣县| 大渡口区| 娄底市| 闸北区| 防城港市| 敦煌市| 巩义市| 蓝田县| 鸡东县| 万宁市| 平远县| 澄城县| 东光县| 淮北市| 海南省| 高邮市| 石渠县| 康定县| 石楼县|