1. 程式人生 > >php常量,提前定義常量,魔術常量及基本數據類型

php常量,提前定義常量,魔術常量及基本數據類型

append mark 推薦 系統 article color 浮點數 scalar markdown

常量

  • 定義:

    • 形式一

      // define("PI",常量值);
      define("PI",3.14);
      define("school","講理");
    • 形式二

      // 定義形式二
      const cc1 = 1234;
      const cc2 = "abcd";
  • 使用:

    • 形式一

      // 直接使用常量名
      echo "PI的值:".PI;
    • 形式二

      // 通過constant函數,靈活性體現-->常量名也能夠變
      // 利用變量拼湊常量名)
      echo "PI的值:".constant("PI");

ps:

  • 推斷常量是否存在:使用defined(常量名)函數推斷。
  • 使用一個沒有定義的常量:在php中,當使用一個沒有定義的變量和常量的時候都會報錯。可是不會輸出沒有定義變量的值,會輸出沒有定義常量的值,其值就是常量名。

提前定義常量

  • 定義:系統中預先定義好的一些常量,大約有幾百個。我們僅僅須要知道當中幾個即可:

    1. M_PI:????????圓周率
    2. PHP_OS:??????php執行所在的操作系統
    3. PHP_VERSION:???php版本
    4. PHP_INT_MAX:???php整數的最大值
      … 很多其它參考php手冊

魔術常量

  • 定義:事實上僅僅是常量的形式。但沒有常量的“恒常”,其值事實上會變化的,僅僅是非常少的幾個:

    1. _FILE_ :代表當前網頁文件的完整物理路徑
    2. _DIR_ :代表當前網頁文件所在的目錄
    3. _LINE_ :代表當前這個變量名所在的“行號”

數據類型

  • 整體劃分:

    在php中有8中數據類型

  • 基本類型(標量類型)

    1. 整數類型:int integer。
    2. 浮點型類型: float,double,real。
    3. 字符串類型: string;
    4. 布爾類型: bool,boolean。

  • 復合類型:

    1. 數組:array;
    2. 對象:object。
  • 特殊類型:

    1. 空類型:null,這樣的類型僅僅有一個數據,那就是null。
    2. 資源類型:resource,如數據庫的連接資源。

整數類型

  • 整數類型有4種寫法:

    $n1 = 123; // 10進制寫法
    $n2 = 0123; // 8進制寫法
    $n3= 0x123; // 16進制寫法
    $n4 = 0b11101 // 二進制寫法
  • 進行轉換:

    • 10進制轉其它3種進制:

      1. decbin(一個10進制數字): 10_>2,返回的是二進制的字符串。
      2. decoct(一個10進制數字): 10->8,返回的是8進制的字符串。
      3. dechex(一個10進制數字): 10->16,返回的是16進制的字符串。
    • 其它3種進制轉10進制

      1. bindec(一個二進制字符串): 2->10,返回的是10進制的字符串;
      2. octdec(一個八進制字符串): 8->10,返回的是10進制的;
      3. hexdec(一個十六進制字符串): 16->10,,返回的是10進制的。

浮點類型:

  • 浮點數的兩種表示形式:

    1. 常規寫法

      v1 = 123.456
    2. 科學計數法:帶一個特殊符號

      $v1 = 123.456E2 // 含義為:123.456乘以10的2次方,結果是浮點數
      $v2 = 123.456E3; // 含義為:123.456乘以10的3次方,結果是浮點數
      $v3 = 123E4; // 含義為:123乘以10的4次方,結果還是浮點數
  • 浮點數使用的細節:

    • 浮點數不應進行大小比較:

      1. 全部數字,終於的表示形式,都是二進制;
      2. 浮點數的二進制形式,不能全然表達準確。
      3. 因此浮點數的比較是不可靠的。

      解決的方法:將浮點數轉換成整數(乘以10的多次方)再比較

    • 浮點數的小數部分可能無法用二進制精確表示;

    • 當整數的運算結果超出整數的表示範圍為的時候。系統自己主動將結果轉換成浮點型.

字符串

  • 四種形式:

    $str1 = "字符串內容...";
    $str2 = ‘字符串內容...‘;
    $str3 = <<<"標識符A"
    字符串內容
    標識符A;
    $str4 = <<<"標識符B"
    字符串內容
    標識符B;
  • 單引號字符串:

    // 單引號字符串。=,須要轉義或能夠識別的轉義符有:\和‘
    $str1 = ‘abcdefg‘;
  • 雙引號字符串:

    // 雙引號字符串,須要轉義或能夠識別的特殊符號有:\,",\n,\r(回車符),\t(tab符),$。

    // 事實上就是取消了其在雙引號字符串中的變量的“起始含義” $str2 = "abcdefg";

  • 雙引號定界符字符串:

    // 雙引號定界字符串,須要轉義能夠識別的特殊符號有:\n,\,
    //\r,\t。雙引號和單引號能夠直接寫出
    $str4=<<<"ABCD"
    abcdef,這裏事實上就是字符串的內容
    ABCD;

    註意:

    1. 上述標識符是我們自己取得一個相似常量名的“名字”,能夠任意;
    2. 該字符串的結束一行,僅僅能出現該標識符本身和一個分號。其它什麽都不能夠出現,包含空格;
    3. 上述標識符的雙引號能夠省略(不推薦);
    4. 標識符僅僅是一種形式,能夠反復出現。

  • 單引號定界字符串:

    // 單引號定界字符串,沒有須要轉義或者能夠識別的特殊字符
    $str3=<<<‘ABCD‘
    abcdef,這裏事實上就是字符串的內容
    ABCD;

布爾類型(僅僅有兩個數據:true 或 false)

  • 單詞:bool,boolean

  • 常見使用形式

    • 對變量直接作推斷(參考手冊);

    • 定義一個變量,用作推斷標識。

類型轉換

  • 自己主動轉換:

    在不論什麽運算中,假設須要某種類型的數據。而給出的數據不是該類型。通常都會發生自己主動類型轉換,

    比方:octdec(),bindec()…

    在php中。算術運算符(包含-,*,/,%),就僅僅是對數值進行計算,如

    $sum = "1" + "2"; // sum的值就是3
  • 強制類型轉換:

    ?自己主動類型轉換時由”運算符“運算的時候決定的,而強制類型轉換就是顯示通過語法轉換目標數據類型:

    // 形式為:(要轉換的數據類型)數據
    $i = 10;
    $s = (string)$i;
    • 通常的轉換目標類型有:(int),(float),(string),(bool),(array),(object)

    • 改變原來變量的數據類型:

      ?上述強制類型轉換中,並不會改變該變量本身的數據類型。相應,有一個語法是直接改變原來變量的數據類型:

      settype($變量名,"目標類型");
  • 類型相關的函數:

    • var_dump():用於輸出變量的”完整信息“。差點兒僅僅用於調試代碼;
    • getType($變量名):獲取該變量的類型名字,返回一個表示該類型的名字的字符串,比方:”string:,”bool”,”double”。

      。。。

    • setType($變量名,”目標類型“);
    • isset(),empty(),nuset()。
    • is_XX類型($變量名):系列函數,推斷是否是某種數據類型
      1. is_int();
      2. is_string();
      3. is_bool();
      4. is_float();
      5. is_numeric();推斷是否是一個數字
      6. is_scalar();推斷是否是一個標量
      7. is_array();
      8. is_object();
      9. is_null();推斷是否是空

php常量,提前定義常量,魔術常量及基本數據類型