欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP數(shù)據(jù)類型的總結(jié)分析

 更新時(shí)間:2013年06月13日 11:57:12   作者:  
本篇文章是對(duì)PHP數(shù)據(jù)類型進(jìn)行了詳細(xì)的總結(jié)與分析,需要的朋友參考下
PHP共有8中數(shù)據(jù)類型:

類型名稱 類型表示 取值
bool 布爾型 true,false
integer 整型 -2147483647-2147483648
string 字符串型 字符串長(zhǎng)度取決于機(jī)器內(nèi)存
float 浮點(diǎn)型 最大值1.8e308
object 對(duì)象 通過(guò)new實(shí)例化 $obj=new person();
array 數(shù)組類型 $arr=array(1,2,3,4,5,6);//一維數(shù)組
resourse
null 空值 null

布爾型bool :
對(duì)于其他類型我們可以使用(bool)或者(boolean) 進(jìn)行強(qiáng)制轉(zhuǎn)換 eg:(bool)1=true;
以下幾種情況在強(qiáng)制轉(zhuǎn)化的時(shí)候默認(rèn)為false:

轉(zhuǎn)換 結(jié)果
布爾型的false var_dump((bool) false) bool(false)
整型0 var_dump((bool) 0); bool(false)
浮點(diǎn)型0.0 var_dump((bool) 0.0); bool(false)
字符串‘0' var_dump((bool) '0'); bool(false)
空數(shù)組$arr=array(); var_dump((bool) $arr) bool(false)
不包含任何成員變量的空對(duì)象只在PHP4使用,PHP5中為true bool(false)
NULL或者尚未賦值的變量var_dump((bool) NULL) bool(false)
從沒(méi)有任何標(biāo)記(tags)的XML文檔生成的SimpleXML 對(duì)象 bool(false)

字符串'0.0'轉(zhuǎn)換結(jié)果為bool(true)
注:-1和其他非零值(不論正負(fù))都是true

整型integer:
整型的范圍-2147483647--2147483647 ,如果超過(guò)該值會(huì)自動(dòng)轉(zhuǎn)換成float型
我們可以使用echo PHP_INT_SZIE 輸出integer的字長(zhǎng),和機(jī)器有關(guān)。echo PHP_INT_MAX 輸出integer的最大值
PHP中沒(méi)有整除運(yùn)算 如果執(zhí)行 1/2 會(huì)產(chǎn)生 float的0.5 如果想實(shí)現(xiàn)整除效果,則可以使用 (int)(1/2)=0 或者使用round(25/7)=4
強(qiáng)制轉(zhuǎn)化成整型 (int)或者(integer) bool型 ture 轉(zhuǎn)換成 1 ,false轉(zhuǎn)換成0

浮點(diǎn)型float:
取值范圍 最大值 :1.8e308 不知道最小值是多少? 求高手告知
浮點(diǎn)數(shù)的字長(zhǎng)也和機(jī)器有關(guān), 好像沒(méi)有PHP_FLOAT_SIZE 啊,求高手告知如何的到浮點(diǎn)數(shù)字長(zhǎng)

字符串類型string:
定義字符串的4種方法:
1.單引號(hào)
2.雙引號(hào)
3.heredoc語(yǔ)法結(jié)構(gòu)
4.nowdoc 語(yǔ)法結(jié)構(gòu)(PHP5.3.0之后)
單引號(hào)
單引號(hào)定義了最原始的字符串,里面的所有內(nèi)容都按字符串處理,如果字符串中包含單引號(hào)則可以用\轉(zhuǎn)義
雙引號(hào)
雙引號(hào)定義的字符串會(huì)解析一些特殊字符(\n,\b)和變量
可以將變量放置在雙引號(hào)中的方式來(lái)代替將變量轉(zhuǎn)換成 字符串(string):
$num=10;
$str = "$num"; //$str為字符串型的10
heredoc語(yǔ)法結(jié)構(gòu)
<<<標(biāo)示符
字符串本身
標(biāo)示符
結(jié)束時(shí)的標(biāo)示符必須在一行的開始位置,而且標(biāo)示符的定義格式也必須按照PHP定義的規(guī)則,只能包含數(shù)字,字母,下劃線,并且不能以數(shù)字下劃線開頭
結(jié)束標(biāo)示符哪一行不允許有其他字符,可以在標(biāo)示符后面添加一個(gè)分號(hào),切分號(hào)前后也不能有tab或空格,否則PHP將無(wú)法解析該標(biāo)示符,會(huì)繼續(xù)向下查找標(biāo)示符,如果在文件結(jié)尾前仍沒(méi)有找到則會(huì)產(chǎn)生一個(gè)錯(cuò)誤
heredoc就是一個(gè)沒(méi)有使用雙引號(hào)的雙引號(hào),就是里面可以包含雙引號(hào),且不用轉(zhuǎn)義,而且可以解析特殊字符和變量
nowdoc 語(yǔ)法結(jié)構(gòu)
<<<'標(biāo)示符'
字符串本身
nowdoc的開始標(biāo)示符必須使用單引號(hào)括起來(lái),結(jié)束標(biāo)示符和其他規(guī)則都和heredoc一樣
nowdoc就是沒(méi)有使用單引號(hào)的單引號(hào),nowdoc包含的字符串會(huì)原樣輸出,里面包含的特殊字符和變量不會(huì)被解析

如果雙引號(hào)中包含數(shù)組變量中的幾種情況
//我們先定義以下數(shù)組
復(fù)制代碼 代碼如下:

[php]
$arr=array(
'one'=>array(
'name'=>'jiangtong',
'sex'=>'男'
),
'two'=>'zhaohaitao',
'three'=>'fanchangfa'
);

上面是的數(shù)組中第一個(gè)元素二維的,后兩個(gè)是一維的,我們?cè)L問(wèn)一維的時(shí)候下面幾種方式:
復(fù)制代碼 代碼如下:

[php]
echo "$arr[two]"http://key沒(méi)有單引號(hào)
echo "$arr['two']"http://key有單引號(hào) 會(huì)出錯(cuò),如果我們改成 echo "{$arr['two']}"; 則可以正確輸出結(jié)果
echo "{$arr[two]}"http://有雙大括號(hào),但是key沒(méi)有單引號(hào) 這種情況PHP會(huì)先尋找有沒(méi)有常量banana,有的話則將其

替換,由于沒(méi)有two常量則出錯(cuò)<span style="font-family: 'Courier New'; "> </span>
可見在訪問(wèn)一維數(shù)組的時(shí)候 要么不加key不加引號(hào)(考慮到第三種情況?。?,加了就要被{}括起來(lái),可以全不加。
多維數(shù)組測(cè)試
復(fù)制代碼 代碼如下:

[php]
echo "$arr[one][name]"; //輸出結(jié)果為Array[name] 可見它返回了一個(gè)數(shù)組,只解析了一維
echo"{$arr['one']['name']}";//輸出結(jié)果為jiangtong

在多維數(shù)組的訪問(wèn)中必須使用了大括號(hào)key必須使用雙引號(hào)括起來(lái)

數(shù)組類型
在字符串類型中已經(jīng)提到,被大括號(hào)括起來(lái)的,如果不加key引號(hào),是合法的,那么PHP首先會(huì)查找是否有名為key的常量,有的話就會(huì)被替換,沒(méi)有的話會(huì)產(chǎn)生一個(gè)找不到常量的警告才按普通字符串處理,所以建議大家一定加單引號(hào)
轉(zhuǎn)換成數(shù)組使用(array)type 或者array(type) ,但是如果將只有一個(gè)值的轉(zhuǎn)換成數(shù)組,會(huì)得到一個(gè)元素的數(shù)組,且下標(biāo)為0,將NULL轉(zhuǎn)換成數(shù)組會(huì)得到空的數(shù)組
我們可以在遍歷數(shù)組的時(shí)候改變數(shù)組的值,在PHP5.0以上可以使用引用實(shí)現(xiàn)
復(fù)制代碼 代碼如下:

[php]
$arr=array('a','b','c','d','e' );
foreach($arr as &$value)
{
$value=strtoupper($value);
echo $value;
}//輸出結(jié)果 ABCDE

Object對(duì)象類型
實(shí)例化對(duì)象我們使用new 加入有一個(gè)person類,我們可以通過(guò)以下方式
復(fù)制代碼 代碼如下:

[php]
$objPerson=new person();

強(qiáng)制轉(zhuǎn)換 (object): 如果將一個(gè)對(duì)象轉(zhuǎn)化成對(duì)象那么它沒(méi)有任何改變,對(duì)于其他任何值將會(huì)實(shí)例化一個(gè)stdclass的對(duì)象,如果該值為NULL,則會(huì)實(shí)例化一個(gè)空對(duì)象,如果 將數(shù)組轉(zhuǎn)換成對(duì)象那么會(huì)將數(shù)組的key作為對(duì)象的屬性,value為屬性值,其他類型的值則名為scalar的成員變量包含該值
復(fù)制代碼 代碼如下:

[php]
$arr=array('one'=>'a','two'=>'b' );
$obj=(object)$arr;
echo $obj->one //輸出結(jié)果為a;

注:這是由key的數(shù)組如果沒(méi)有字符key的數(shù)組,我不知道如何訪問(wèn),誰(shuí)知道希望告訴小弟一下,謝謝。
對(duì)于其他值
復(fù)制代碼 代碼如下:

[php]
$obj1=(object)'jiang';
echo $obj1->scalar;//輸出結(jié)果jiang

NULL 空類型
null大小寫不敏感,NULL類型只有一個(gè)取值,表示一個(gè)變量沒(méi)有值,下面三種情況變量被認(rèn)為為NULL
1.被賦值為NULL
2.尚未被賦值
3.被unset();

PHP type comparison tables
Comparisons of $x with PHP functions
Expression gettype() empty() is_null() isset() boolean :if($x)
$x = ""; string TRUE FALSE TRUE FALSE
$x = null NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = "1"; string FALSE FALSE TRUE TRUE
$x = "0"; string TRUE FALSE TRUE FALSE
$x = "-1"; string FALSE FALSE TRUE TRUE
$x = "php"; string FALSE FALSE TRUE TRUE
$x = "true"; string FALSE FALSE TRUE TRUE
$x = "false"; string FALSE FALSE TRUE TRUE
Loose comparisons with ==
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
-1 TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
"1" TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
"php" TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE


Strict comparisons with ===
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
"1" FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
array() FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
"php" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE


相關(guān)文章

最新評(píng)論