欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          直擊php中static,const與define的使用區(qū)別

          直擊php中static,const與define的使用區(qū)別

          define部分:
          宏不僅可以用來代替常數(shù)值,還可以用來代替表達(dá)式,甚至是代碼段。(宏的功能很強(qiáng)大,但也容易出錯(cuò),所以其利弊大小頗有爭(zhēng)議。)
          宏的語法為:
          #define 宏名稱 宏值
          作為一種建議和一種廣大程序員共同的習(xí)慣,宏名稱經(jīng)常使用全部大寫的字母。

          相關(guān)學(xué)習(xí)推薦:php編程(視頻)

          利用宏的優(yōu)點(diǎn):
          1)讓代碼更簡(jiǎn)潔明了
          當(dāng)然,這有賴于你為宏取一個(gè)適當(dāng)?shù)拿?。一般來說,宏的名字更要注重有明確直觀的意義,有時(shí)寧可讓它長(zhǎng)點(diǎn)。
          2)方便代碼維護(hù)
          對(duì)宏的處理,在編譯過程中稱為“預(yù)處理”。也就是說在正式編譯前,編譯器必須先將代碼出現(xiàn)的宏,用其相應(yīng)的宏值替換,這個(gè)過程有點(diǎn)你我在文字處理軟件中的查找替換。所以在代碼中使用宏表達(dá)常數(shù),歸根結(jié)底還是使用了立即數(shù),并沒有明確指定這個(gè)量的類型。
          const部分
          常量定義的格式為:
          const 數(shù)據(jù)類型 常量名 = 常量值;
          而const定義的常量具有數(shù)據(jù)類型,定義數(shù)據(jù)類型的常量便于編譯器進(jìn)行數(shù)據(jù)檢查,使程序可能出現(xiàn)錯(cuò)誤進(jìn)行排查。常量必須一開始就指定一個(gè)值,然后,在以后的代碼中,我們不允許改變此常量的值。
          兩者之間的區(qū)別:
          內(nèi)存空間的分配上。define進(jìn)行宏定義的時(shí)候,不會(huì)分配內(nèi)存空間,編譯時(shí)會(huì)在main函數(shù)里進(jìn)行替換,只是單純的替換,不會(huì)進(jìn)行任何檢查,比如類型,語句結(jié)構(gòu)等,即宏定義常量只是純粹的置放關(guān)系,

          如#define null 0;編譯器在遇到null時(shí)總是用0代替null它沒有數(shù)據(jù)類型,還有疑問請(qǐng)找C語言書籍看預(yù)處理部分或者看MSDN.而const定義的常量具有數(shù)據(jù)類型,定義數(shù)據(jù)類型的常量便于編譯器進(jìn)行數(shù)據(jù)檢查,使程序可能出現(xiàn)錯(cuò)誤進(jìn)行排查,所以const與define之間的區(qū)別在于const定義常量排除了程序之間的不安全性.

          define定義全局常量,在任何地方都可以訪問const用于類成員變量定義,只能用類名訪問不能更改要是初學(xué)這樣顯理解著就行別太鉆牛角尖就行 PHP5中加入了很多面向?qū)ο蟮乃枷?PHP5的面向?qū)ο蟊容^接近Java的面向?qū)ο笏枷?。我們這里對(duì)PHP5中的static和const關(guān)鍵字作用進(jìn)行一下描述,希望對(duì)學(xué)習(xí)PHP5的朋友有幫助。

          (1) staticstatic關(guān)鍵字在類中是,描述一個(gè)成員是靜態(tài)的,static能夠限制外部的訪問,因?yàn)閟tatic后的成員是屬于類的,是不屬于任何對(duì)象實(shí)例,其他類是無法訪問的,只對(duì)類的實(shí)例共享,能一定程序?qū)υ摮蓡T盡心保護(hù)。類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實(shí)例共享,類的靜態(tài)方法也是一樣的,類似于全局函數(shù)。類的靜態(tài)方法能訪問類的靜態(tài)的屬性。另外說明的是,static的成員,必須使用self來訪問,使用this會(huì)出錯(cuò)。

          (2)constconst是一個(gè)定義常量的關(guān)鍵字,類似于C中的#define,能夠定義一個(gè)常量,如果在程序中改變了它的值,那么會(huì)出現(xiàn)錯(cuò)誤。舉例說明上面的代碼:

          代碼如下:

          <?php  class Counter  {  private static $count = 0;//定義一個(gè)靜態(tài)屬性  const VERSION = 2.0;//定義一個(gè)常量  //構(gòu)造函數(shù)  function __construct()  {  self::$count++;  }  //析構(gòu)函數(shù)  function __destruct()  {  self::$count--;  }  //定義一個(gè)靜態(tài)的方法  static function getCount()  {  return self::$count;  }  }  //創(chuàng)建一個(gè)實(shí)例  $c = new Counter();  //執(zhí)行打印  print( Counter::getCount(). "<br>n" ); //使用直接輸入類名來訪問靜態(tài)方法Counter::getCount  //打印類的版本  print( "Version useed: " .Counter::VERSION. "<br>n" );  ?>

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)