PHP資料型別相關

2021-09-29 03:35:46 字數 4171 閱讀 2332

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 十六進製制數 ...