php常量,提前定義常量,魔術常量及基礎資料型別 (Elementary Data Type)

來源:互聯網
上載者:User

標籤:類型轉換   strong   作業系統   大小   系統   資料類型   相關   type   四種   

常量

  • 定義:

    • 形式一

      // 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常量,提前定義常量,魔術常量及基礎資料型別 (Elementary Data Type)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.