據(jù)類型,強(qiáng)類型語言必須手動(dòng)聲明類型。
1)自動(dòng)類型轉(zhuǎn)換,五種數(shù)據(jù)類型,標(biāo)量中的四個(gè)類型和null都可以通過運(yùn)算自動(dòng)轉(zhuǎn)換類型。
布爾值參與運(yùn)算
true ---> 1 false ---> 0
字符串和數(shù)字運(yùn)算,字符串先轉(zhuǎn)換為數(shù)字在運(yùn)算。
字符串轉(zhuǎn)換為數(shù)字,從前開始到第一個(gè)不是數(shù)字的字符結(jié)束(不符合的內(nèi)容清空)。
整型轉(zhuǎn)換為浮點(diǎn)數(shù) ,精度不改變。
浮點(diǎn)數(shù)轉(zhuǎn)換為整型舍去小數(shù)點(diǎn),保留整數(shù)部分。
如果浮點(diǎn)數(shù)超出整數(shù)范圍,答案不確定。
null 值轉(zhuǎn)換為字符串,是空字符串。
//bool to int
var_dump(true 1);//2 true->1
var_dump(false 1);//1 false->0
var_dump(null 1);// 1 null-> 0
echo '<hr/>';
// bool to float
var_dump(true 1.0);// float 2
var_dump(false 1.0);// float 1 var_dump(null 1.0);// float 1
echo '<hr/>';
//string to int
var_dump('123' 1);//124 '123'->123
var_dump('abc123' 1);//1 'abc123'->0
var_dump('123abcdefggggggggggg;8000' 1);//124
var_dump('a123' 1);//1
var_dump('1a123' 1);//2
//php7.0版本所有進(jìn)制都不轉(zhuǎn)
var_dump('077abc' 1);// 78 077->77 八進(jìn)制不轉(zhuǎn)換
var_dump('0b11abc' 1);//1 //0b 不轉(zhuǎn)換
var_dump('0xffhsahahhahah' 1);//1 0x不轉(zhuǎn)換
//php 5.6以下都會(huì)轉(zhuǎn)換為 0xff->255
echo '<hr/>';
//string to float
var_dump('1.234abcdef' 1.0);//2.234
var_dump('1.234E3' 1.0);//1235
var_dump('1e5' 1.0);//2 100001
var_dump('1E-5' 1.0);//1.00001
2)強(qiáng)類型轉(zhuǎn)換
使用括號(hào)加目標(biāo)類型進(jìn)行轉(zhuǎn)換
(int)(integer) (bool)(boolean) (float)(real) (string) (array) (object)
使用類型轉(zhuǎn)換函數(shù)
settype() 永久轉(zhuǎn)換類型的函數(shù)(重點(diǎn))
第一個(gè)參數(shù) 你要改變類型的變量
第二個(gè)參數(shù) 你要改變的類型名intval() 轉(zhuǎn)換為整型floatval() 轉(zhuǎn)換為浮點(diǎn)數(shù)strval() 轉(zhuǎn)換為字符串
<?php $a = 1; var_dump($a); var_dump((int)$a); var_dump((integer)$a); var_dump((bool)$a); var_dump((float)$a); var_dump((real)$a); var_dump((string)$a); var_dump((array)$a); var_dump((object)$a); var_dump($a); var_dump($a); var_dump($a); var_dump($a); var_dump($a); echo '<hr/>'; $b = 100; var_dump($b); //下面函數(shù)是永久有效的類型轉(zhuǎn)換 settype($b,'string'); var_dump($b); var_dump($b); var_dump($b); var_dump($b); var_dump($b); var_dump($b); echo '<hr/>'; //下?的函數(shù)也是當(dāng)次有效 和最開始的強(qiáng)制類型轉(zhuǎn)換一樣 只不過語法不同而已 $m = 200; var_dump(intval($m)); var_dump(floatval($m)); var_dump(strval($m)); var_dump($m); var_dump($m); var_dump($m);
相關(guān)學(xué)習(xí)推薦:PHP編程從入門到精通
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問題,請(qǐng)?jiān)L問西部數(shù)碼官網(wǎng):m.ps-sw.cn