一共8種類型剪撬。
基本類型4種
整型(int,integer)
1.4種寫法
$n1 = 123 //10進(jìn)制
$n2 = 0123 //8進(jìn)制
$n3 = 0x123 //16進(jìn)制
$n4 = 0b123 //2進(jìn)制
2.進(jìn)制轉(zhuǎn)換
bin二進(jìn)制漓穿,oct八進(jìn)制嗤军,dec10進(jìn)制,hex十六進(jìn)制晃危。只有2種轉(zhuǎn)換叙赚,10進(jìn)制轉(zhuǎn)其他,其他轉(zhuǎn)10進(jìn)制僚饭。不能任意組合轉(zhuǎn)震叮,8進(jìn)制轉(zhuǎn)2進(jìn)制之類的是不存在的
10進(jìn)制轉(zhuǎn)其他(輸進(jìn)數(shù)字,返回的都是字符串鳍鸵!字符串N辍)
$n = 123;
$nc2 = decbin($n); //10進(jìn)制轉(zhuǎn)2進(jìn)制
$nc8 = decoct($n); //10進(jìn)制轉(zhuǎn)8進(jìn)制
$nc16 = dechex($n); //10進(jìn)制轉(zhuǎn)16進(jìn)制
echo "$nc2 <br/>"; //1111011
echo "$nc8 <br/>"; //173
echo "$nc16"; //7b
其他轉(zhuǎn)10進(jìn)制(輸進(jìn)字符串!字符串偿乖!返回字符串;髯铩)
$n2_10 = bindec('10111'); //2進(jìn)制轉(zhuǎn)10進(jìn)制
$n8_10 = octdec('123'); //8進(jìn)制轉(zhuǎn)10進(jìn)制
$n16_10 = hexdec('123'); //16進(jìn)制轉(zhuǎn)10進(jìn)制
如果你在代碼種寫2進(jìn)制、8進(jìn)制贪薪、16進(jìn)制形式的數(shù)媳禁,echo出來會(huì)自動(dòng)轉(zhuǎn)換成10進(jìn)制輸出的
$n2 = 0b10101011111;
$n8 = 0123;
$n16 = 0x123;
echo "$n2<br>"; //1375
echo "$n8<br>"; //83
echo "$n16<br>"; //291
#題外話:echo "$n2<br>"還必須用雙引號(hào),單引不行画切,單引會(huì)將$n2當(dāng)作字符串解釋0.0
補(bǔ)充一個(gè)轉(zhuǎn)換題加深理解
浮點(diǎn)型(float竣稽,double,real)
1.2種寫法
//直接寫
$v1 = 123.123;
//科學(xué)計(jì)數(shù)法霍弹,帶一個(gè)特殊符號(hào)E毫别,凡是這種寫法的無論實(shí)際大小,都是浮點(diǎn)型
$v2 = 123.123E2 //即12312.3
$v3 = 123.123E3 //即123123庞萍,仍然為浮點(diǎn)型
$v4 = 123E3 //即123000拧烦,浮點(diǎn)型
2.浮點(diǎn)數(shù)使用細(xì)節(jié)
- 浮點(diǎn)數(shù)不應(yīng)該比較大型拧钝计!浮點(diǎn)數(shù)不應(yīng)該進(jìn)行大小比較!浮點(diǎn)數(shù)不應(yīng)該進(jìn)行大小比較!(2進(jìn)制缺陷私恬,大多數(shù)浮點(diǎn)數(shù)表達(dá)不能完全準(zhǔn)確债沮,只能以很高的精度、接近理論值的值進(jìn)行比較本鸣。真想比較兩個(gè)浮點(diǎn)型的大小疫衩,結(jié)合所要求的精度轉(zhuǎn)化后再進(jìn)行比較)
比較8.1/3和2.7的大小
//精度要求為4
if(round(8.1/3 * 10000) == round(2.7 * 10000)){
echo ''相等!''
}
- 浮點(diǎn)型轉(zhuǎn)2進(jìn)制荣德,乘以2按順序取整數(shù)部分就可以了
- 當(dāng)整數(shù)的運(yùn)算結(jié)果超出整數(shù)的范圍之后闷煤,會(huì)自動(dòng)轉(zhuǎn)換成浮點(diǎn)型
$v = 10000;
$m1 = $v * $v;
$m2 = $m1 * $m1 * $m1;
echo PHP_INT_MAX . "<br>"; //9223372036854775807
var_dump($m1); //int(100000000)
var_dump($m2); //float(1.0E+24)
字符串(string)
1.雙引號(hào)字符串:可以識(shí)別預(yù)定義的$符和tab
2.單引號(hào)字符串:不能識(shí)別$符
3.雙引號(hào)定界符字符串
這種方法定義一個(gè)字符串的時(shí)候,最后一行涮瞻,只能是標(biāo)識(shí)符和分號(hào)鲤拿,其他什么都不能有!包括空格署咽!
$str = <<<"abcd" //這是標(biāo)識(shí)符近顷,自己定義的
這是雙引號(hào)定界符字符串!
abcd;
echo $str;
4.單引號(hào)定界符字符串:寫法和雙引號(hào)定界符字符串類似宁否,但是它沒有任何轉(zhuǎn)義字符窒升。
布爾型(bool,boolean)
記住幾個(gè)特殊的就行了慕匠,0饱须、"0"、""台谊、null冤寿、空數(shù)組、空對(duì)象青伤、未定義變量 都是 false督怜, 其余是 true。
復(fù)合類型2種
數(shù)組(array)
對(duì)象(object)
特殊類型2種
空類型(null)
資源類型(resource)狠角,如數(shù)據(jù)庫号杠,每一種資源都要另外學(xué)習(xí)的
數(shù)據(jù)類型轉(zhuǎn)換
當(dāng)然也分自動(dòng)轉(zhuǎn)換(基本都是數(shù)學(xué)運(yùn)算符導(dǎo)致)和強(qiáng)制轉(zhuǎn)換啦。
強(qiáng)制轉(zhuǎn)換
1.通常的轉(zhuǎn)換目標(biāo)類型是(轉(zhuǎn)對(duì)象那個(gè)貌似作用不大丰歌?) (int)姨蟋、(float)、(string)立帖、(bool)眼溶、(array)、(object)
$v = 123;
$m1 = (float)$v; //轉(zhuǎn)成浮點(diǎn)類型
$m2 = (string)$v; //轉(zhuǎn)成字符串類型
2.用方法 setType() 進(jìn)行轉(zhuǎn)換
$v = 123;
setType($v, "string");
3.專門方法轉(zhuǎn)換
intval()晓勇、floatval()堂飞、strval()
$v = 123;
$m1 = floatval($v);
$m2 = strval($v);
$a = "123";
$a1 = intval($v);