php支援8種原始資料型別
: 4種標量型別(int,float,string,boolean),2種復合型別(array,object),2種特殊型別(resource,null)
以下值被認為是false
布林值false
整型值0
浮點型0.0
空字串''
或者字串'0'
空陣列
空物件
null
或未賦值的變數
空標記生成的******xml物件
<?php
var_dump
((bool)"")
;// bool(false)
var_dump
((bool)1)
;// bool(true)
var_dump
((bool)-2
);// bool(true)
var_dump
((bool)
"foo");
// bool(true)
var_dump
((bool)
2.3e5);
// bool(true)
var_dump
((bool)
array(12
));// bool(true)
var_dump
((bool)
array()
);// bool(false)
var_dump
((bool)
"false");
// bool(true)
?>
echo false;
會輸出空值
integer(整型)
整型可以使用十進位制,十六進製制,八進位制或二進位制表示,前面可以加可選符號(±)
<?php$a=
1234
;// 十進位制數$a=
-123
;// 負數$a=
0123
;// 八進位制數 (等於十進位制 83)$a=
0x1a
;// 十六進製制數 (等於十進位制 26)$a=
0b10 ;
// 二進位制進製數 (等於二進位制 2)
php_int_max
表示int型別最大值
整數溢位
: 如果數值定義或計算
超過int範圍(php_int_max),將會轉為float
浮點型別轉換
: 當從浮點型轉換為整型時,將向下取整
warning
: 不要將未知的數值轉換為int
<?php
echo
(int)((
0.1+
0.7)*10
);// 顯示 7!
float(浮點型)warning
: 永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。
<?php$a=
1.23456789;$b
=1.23456780
;$epsilon
=0.00001
;//要測試浮點數是否相等,要使用乙個僅比該數值大一丁點的最小誤差值。該值也被稱為機器極小值(epsilon)或最小單元取整數,是計算中所能接受的最小的差別值。
if( abs ($a-
$b)<
$epsilon
)
nan
:某些數**算會產生乙個由常量 nan 所代表的結果。此結果代表著乙個在浮點數運算中未定義或不可表述的值。任何拿此值與其它任何值進行的鬆散或嚴格比較的結果都是 false 。 由於 nan 代表著任何不同值,不應拿 nan 去和其它值進行比較,包括其自身,應該用 is_nan() 來檢查。
warning
: 用超出字串長度的下標寫入將會拉長該字串並以空格填充。非整數型別下標會被轉換成整數。非法下標型別會產生乙個 e_notice 級別錯誤。用負數下標寫入字串時會產生乙個 e_notice 級別錯誤,用負數下標讀取字串時返回空字串。寫入時只用到了賦值字串的第乙個字元。用空字串賦值則賦給的值是 null 字元。
<?php
$str
='0123'
;$str
[101]=
7;echo
$str
;//0123 7
乙個布林值 boolean 的 true 被轉換成 string 的 "1"。 boolean 的 false 被轉換成 ""(空字串)。
key
:int 或者 string
value
:可以是任意型別
key的強制轉換
1. 合法整型值字串會被轉為整型, '8'=>8,但是'08'不會,因為其不是乙個合法十進位制數值
2. 浮點數會捨去取整
3. 布林值,true=>1,false=>0
4. null會被轉為空字串
5. 陣列和物件不能作為鍵名
<?php
$arr=[
1=>
'a',
'1'=
>
'b',
1.9=
>
'c',
true
=>
'd',];
print_r
($arr);
//array ( [1] => d )
<?php
$arr=[
0123
=>
'a',
//八進位制數 (等於十進位制 83)
123=
>
'b',];
print_r
($arr);
//array ( [83] => a [123] => b )
<?php
$arr=[
null
=>
'a',1=
>
'b',];
print_r
($arr);
//array ( => a [1] => b )
$arr=[
null
=>
'a',1=
>
'b',''=
>
'c',];
print_r
($arr);
//array ( => c [1] => b )
unset
: 允許刪除陣列中指定鍵,但是不會重建索引
,重建索引可使用array_values()
get_object_vars
:返回由物件屬性組成的關聯陣列
<?php
classa$a
=newa;
print_r
(get_object_vars($a
));//array
//(// [a] => 1
// [b] => 2
// [c] => 3
//)
1. 被賦值 null
2. 未被複製
3. 被unset
<?php$a=
null
;var_dump($a
);$b;
var_dump($b
);$c=
666;
unset($c
);var_dump($c
);// null
資料型別相關
整型常量 十進位制 18 31 long int型常量 123l 123l 123456l 123456l unsigned int型常量 123u 123u 根據實際資料大小確定int型還是long型 l以數字 0 開始的整型常量是八進位制數 022 037 010和10大小不一樣 因為八進位制並...
php偽資料資料型別 PHP的資料型別
php的資料型別 資料型別 整體劃分 標量型別 int,float,string,bool 復合型別 array,object 特殊型別 null,resouce 整數型別int,integer 3種整數表示法 十進位制寫法 123 n1 123 八進位制寫法 0123 n2 0123 十六進製制寫...
PHP的資料型別 型別轉換及相關函式
標準資料型別 1 布林型 php中0表示false,非0表示true。例如 result false result 0 result 1 result true 2 整型 例如 result 42 result 67293 result 0755 八進位制數 result 0xc4e 十六進製制數 ...