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 (字串)
兩種複合型別:
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