1. 程式人生 > >php的八大資料型別和常用的魔術常量

php的八大資料型別和常用的魔術常量

資料型別:

四種標量型別:
boolean (布林型):這是最簡單的型別,只有兩種取值,可以為 TRUE/true 或 FALSE/false ,不區分大小寫。詳細請檢視:PHP布林型別(boolean)
integer (整型):在32 位作業系統中它的有效範圍是:-2 147 483 648~+2 147 483 647。整型值可以使用十進位制,十六進位制或八進位制表示,前面可以加上可選的符號(- 或者 +)。八進位制表示數字前必須加上 0(零),十六進位制表示數字前必須加上 0x。詳細請檢視:PHP整型資料(Integer)
float (浮點型, 也稱作 double):在32 位作業系統中的有效範圍為:1.7E-308~1.7E+308。詳細請檢視:PHP浮點型別(float)
string (字串)

:字元型變數不同於其他程式語言有字元與字串之分,在PHP 中,統一使用字元型變數來定義字元或者字串。詳細請檢視:PHP字串型別(string)

兩種複合型別:
array (陣列):陣列型變數是一種比較特殊的變數型別,將在後續章節中詳細說明。
object (物件):物件也是一種特殊的資料型別。要建立object變數,請使用 new 關鍵字。詳細請檢視:PHP物件型別(object)

最後是兩種特殊型別:
resource(資源):源是一種特殊變數,儲存了到外部資源的一個引用。資源是通過專門的函式來建立和使用的。詳情請檢視:PHP資源型別(resource)
NULL(NULL):表示一個變數沒有值。NULL 型別唯一可能的值就是 NULL。

注意:

可能還會讀到一些關於“雙精度(double)”型別的參考。實際上 double 和 float 是相同的,由於一些歷史的原因,這兩個名稱同時存在。
變數的型別通常不是由程式設計師設定的,是由 PHP 根據該變數使用的上下文在執行時決定的。也就是說,PHP是弱型別的語言,程式設計師在宣告變數時無需宣告變數型別,PHP直譯器會自動識別。

魔術常量:

在php中我們可以自定義常量,同時php中也自定義了一些好用的常量,這些常量會根據其所在的位置而自動變化。
   我們稱之為魔術常量。魔術常量可以大寫也可以小寫,是不區分大小寫的
     (1). __FILE__                當前檔案路徑
     (2). __DIR__                  當前檔案目錄
     (3). __LINE__                 在檔案檔案的那一行 
     (4). __FUNCTION__       在當前檔案的那個函式中       返回 函式名
     (5). __CLASS__             在當前檔案中的那個類中       返回 類名
     (6). __METHOD__          在當前檔案的類中的那個方法中 返回 類名::方法名

echo print print_r() var_dump()的區別:

1.echo 和 print 的區別

共同點:首先echo 和 print 都不是嚴格意義上的函式,他們都是 語言結構;他們都只能輸出 字串,整型跟int型浮點型資料。不能列印複合型和資源型資料;

而區別是:echo 可以連續輸出多個變數,而print只能一次輸出一個變數。print列印的值能直接複製給一個變數,如 $a = print “123”;

而echo 不可以,它沒有像函式的行為,所以不能用於函式的上下文。在使用時,echo() 函式比 print()速度稍快。

2.var_dump()和print_r()的區別

共同點:兩者都可以列印陣列,物件之類的複合型變數。

區別:print_r() 只能列印一些易於理解的資訊,且print_r()在列印陣列時,會將把陣列的指標移到最後邊,使用 reset() 可讓指標回到開始處。 而var_dump()不但能列印複合型別的資料,還能列印資源型別的變數。且var_dump()輸出的資訊則比較詳細,一般除錯時用得多。

PHP 中的許多預定義變數都是“超全域性的”,這意味著它們在一個指令碼的全部作用域中都可用。在函式或方法中無需執行 global $variable; 就可以訪問它們。

這些超全域性變數是:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION