PHP變量的類型
PHP支持八種原始類型---var_dump()
- 四種標量
布爾型(boolean)
整形(integer)
浮點型(float)(讀點書,也作double)
字符串(String)
- 兩種符合類型
數組(Array)
對象(Object)
- 兩種特殊類型
資源(Resource)
NULL
布爾值
布爾值表示爲:true/false
當其他類型轉換爲boolean類型時,某些值也被認爲是false(假):
- 布爾值false
- 整型值 0
- 浮點型 0.0
- 空白字符串和字符串"0"
- 空數組
- NULL
其它的值都被認爲是true(真)
其他的類型也可以表示爲布爾值比如:
<?php
//boolean false
//int 0
//float 0.0,0.00
//String "","0"
//array 空數組
//NULL
$boolean = "0";
if($boolean){
echo "這是真值";
}else{
echo "這是假值";
}
?>
輸出:這是假值
整型和浮點型
整型值可以用十進制,十六進制或八進制符號指定,前面可以加上可選的符號(- 或者 +)代表數值的正負。
<?php
$a = 1234; // 十進制數
$a = -123; // 一個負數
$a = 0123; // 八進制數(等於十進制的 83)
$a = 0x1A; // 十六進制數(等於十進制的 26)
?>
整數值有最大的使用範圍,這與平臺有關,對於32位系統而言範圍:-2147483648~2147483647,PHP不支持無符號整數。如果超出了則變成了float型。
<?php
$large_number=2147483648;
var_dump($large_number);
?>
輸出:float(2147483648)
浮點數(也叫雙精度數或實數)是包含小數部分的數。通常用來表示整數無法表示的數據,如金錢值、距離值、速度值等。浮點數的字長和平臺相關,儘管通常最大值是 1.8e308 並具有 14 位十進制數字的精度。
可以用以下任何語法定義:
<?php
$a = 1.234;
$a = 1.2e3; //相當於1.2*103即1200
$a = 7E-10; //相當於7*10-10即0.0000000007
?>
字符串類型
字符串聲明
- 在php中,一個字符和多個字符都是字符串
- 聲明一個字符串必須使用單引號或雙引號引起來
- 字符串是沒有長度限制的
- 在單引號中可以使用雙引號,在雙引號中也可以使用單引號
- 在單引號中不可以再使用單引號,在雙引號中也不可以使用雙引號
- 可以使用轉義字符 \
<?php
$a="hello";
$b='hello';
?>
單引號和雙引號的區別
- 在雙引號可以解析變量,在單引號中不能解析變量(變量可以加{}解析)
- 在雙引號中可以使用轉義字符 \n \r \t ,在單引號中不能使用轉義字符(在單引號中只能轉移單引號自己和轉義符號本身)
\n 換行
\r 回車
\t 水平製表符
\\ 反斜線
\$ 美元符號
......
定界符號聲明字符串
- 使用<<<小於號
- 在開始的定界符(自定義的字符串中)一定要左邊挨着<<<,寫完定界的字符串,一定要,直接回車(空格都不可以)
- 在結尾的字符串定界中,一定要頂頭寫,和開始的字符串要一致,並且回車
- 使用單引號在開始的定界符中,將支持雙引號的功能改爲單引號的功能
<?php
$int=5;
$a=<<<hello
black $int red \$ a
hello;
$b=<<<'word'
black $int red \$ a
word;
echo $a;
echo "</br>";
echo $b;
?>
輸出:black 5 red $ a
black $int red \$ a
變量之間的類型轉換
數據類型強制轉換
- PHP 中的類型強制轉換和 C 中的非常像:在要轉換的變量之前加上用括號括起來的目標類型
- 允許的強制轉換有:
- (int),(integer)-轉換成整型
- (bool),(boolean)-轉換成布爾型
- (float),(double),(real)-轉換成浮點型
- (string)-轉換成字符串
- (array)-轉換成數組
- (object)-轉換成對象
- 注意在括號內允許有空格和製表符,爲了將一個變量還原爲字符串,還可以將變量放置在雙引號中
變量類型的測試函數
- is_bool():判斷是否是布爾型
- is_int()、is_integer()、is_long():判斷是否爲整型
- is_float()、is_double()、is_real():判斷是否爲浮點型
- is_string():判斷是否爲字符串
- is_array():判斷是否爲數組
- is_object():判斷是否爲對象
- is_resource():判斷是否爲資源類型
- is_null():判斷是否爲null
- is_scalar():判斷是否爲標量
- is_numberic():判斷是否是任何類型的數字和數字字符串
- is_callable():判斷是否是有效的函數名
- bool settype(mixed var,string type) :將變量var的類型設置爲type