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

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

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

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

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

轉(zhuǎn)換 結(jié)果
布爾型的false var_dump((bool) false) bool(false)
整型0 var_dump((bool) 0); bool(false)
浮點型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)
不包含任何成員變量的空對象只在PHP4使用,PHP5中為true bool(false)
NULL或者尚未賦值的變量var_dump((bool) NULL) bool(false)
從沒有任何標記(tags)的XML文檔生成的SimpleXML 對象 bool(false)

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

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

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

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

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

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

上面是的數(shù)組中第一個元素二維的,后兩個是一維的,我們訪問一維的時候下面幾種方式:
復制代碼 代碼如下:

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

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

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

在多維數(shù)組的訪問中必須使用了大括號key必須使用雙引號括起來

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

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

Object對象類型
實例化對象我們使用new 加入有一個person類,我們可以通過以下方式
復制代碼 代碼如下:

[php]
$objPerson=new person();

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

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

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

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

NULL 空類型
null大小寫不敏感,NULL類型只有一個取值,表示一個變量沒有值,下面三種情況變量被認為為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)文章

最新評論