PHP基礎(chǔ)之?dāng)?shù)據(jù)類型10——類型轉(zhuǎn)換的判別
PHP 在變量定義中不需要(或不支持)明確的類型定義;變量類型是根據(jù)使用該變量的上下文所決定的。也就是說(shuō),如果把一個(gè)字符串值賦給變量?$var,$var?就成了一個(gè)字符串。如果又把一個(gè)整型值賦給?$var,那它就成了一個(gè)整數(shù)。
PHP 的自動(dòng)類型轉(zhuǎn)換的一個(gè)例子是加法運(yùn)算符“+”。如果任何一個(gè)操作數(shù)是浮點(diǎn)數(shù),則所有的操作數(shù)都被當(dāng)成浮點(diǎn)數(shù),結(jié)果也是浮點(diǎn)數(shù)。否則操作數(shù)會(huì)被解釋為整數(shù),結(jié)果也是整數(shù)。注意這并沒有改變這些操作數(shù)本身的類型;改變的僅是這些操作數(shù)如何被求值以及表達(dá)式本身的類型。
<?php$foo?=?'0';??//?$foo?是字符串?(ASCII?48)$foo?+=?2;???//?$foo?現(xiàn)在是一個(gè)整數(shù)?(2)$foo?=?$foo?+?1.3;??//?$foo?現(xiàn)在是一個(gè)浮點(diǎn)數(shù)?(3.3)$foo?=?5?+?'10?Little?Piggies';?//?$foo?是整數(shù)?(15)$foo?=?5?+?'10?Small?Pigs';?????//?$foo?是整數(shù)?(15)?>如果想要測(cè)試本節(jié)中任何例子的話,可以用?var_dump()?函數(shù)。
Note:
自動(dòng)轉(zhuǎn)換為?數(shù)組?的行為目前沒有定義。
此外,由于 PHP 支持使用和數(shù)組下標(biāo)同樣的語(yǔ)法訪問字符串下標(biāo),以下例子在所有 PHP 版本中都有效:
<?php$a????=?’car’;?//?$a?is?a?string$a[0]?=?’b’;???//?$a?is?still?a?stringecho?$a;???????//?bar?>類型強(qiáng)制轉(zhuǎn)換PHP 中的類型強(qiáng)制轉(zhuǎn)換和 C 中的非常像:在要轉(zhuǎn)換的變量之前加上用括號(hào)括起來(lái)的目標(biāo)類型。
<?php$foo?=?10;???//?$foo?is?an?integer$bar?=?(boolean)?$foo;???//?$bar?is?a?boolean?>允許的強(qiáng)制轉(zhuǎn)換有:
(int), (integer) - 轉(zhuǎn)換為整形?integer(bool), (boolean) - 轉(zhuǎn)換為布爾類型?boolean(float), (double), (real) - 轉(zhuǎn)換為浮點(diǎn)型?float(string) - 轉(zhuǎn)換為字符串?string(array) - 轉(zhuǎn)換為數(shù)組?array(object) - 轉(zhuǎn)換為對(duì)象?object(unset) - 轉(zhuǎn)換為?NULL?(PHP 5)(binary) 轉(zhuǎn)換和 b 前綴轉(zhuǎn)換支持為 PHP 5.2.1 新增。
注意在括號(hào)內(nèi)允許有空格和制表符,所以下面兩個(gè)例子功能相同:
<?php$foo?=?(int)?$bar;$foo?=?(?int?)?$bar;?>將字符串文字和變量轉(zhuǎn)換為二進(jìn)制字符串:
<?php$binary?=?(binary)$string;$binary?=?b'binary?string';?>Note:
可以將變量放置在雙引號(hào)中的方式來(lái)代替將變量轉(zhuǎn)換成字符串:
<?php$foo?=?10;????????????//?$foo?是一個(gè)整數(shù)$str?=?'$foo';????????//?$str?是一個(gè)字符串$fst?=?(string)?$foo;?//?$fst?也是一個(gè)字符串//?輸出?'they?are?the?same'if?($fst?===?$str)?{echo?'they?are?the?same';}?>有時(shí)在類型之間強(qiáng)制轉(zhuǎn)換時(shí)確切地會(huì)發(fā)生什么可能不是很明顯。更多信息見如下小節(jié):
轉(zhuǎn)換為布爾型轉(zhuǎn)換為整型轉(zhuǎn)換為浮點(diǎn)型轉(zhuǎn)換為字符串轉(zhuǎn)換為數(shù)組轉(zhuǎn)換為對(duì)象轉(zhuǎn)換為資源轉(zhuǎn)換為 NULL相關(guān)文章:
1. 解決python腳本中error: unrecognized arguments: True錯(cuò)誤2. Python使用jupyter notebook查看ipynb文件過程解析3. php的curl攜帶header請(qǐng)求頭信息實(shí)現(xiàn)http訪問的方法4. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究5. IntelliJ IDEA創(chuàng)建普通的Java 項(xiàng)目及創(chuàng)建 Java 文件并運(yùn)行的教程6. ajax請(qǐng)求添加自定義header參數(shù)代碼7. python利用os模塊編寫文件復(fù)制功能——copy()函數(shù)用法8. 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁(yè)9. php測(cè)試程序運(yùn)行速度和頁(yè)面執(zhí)行速度的代碼10. 解決Python 進(jìn)程池Pool中一些坑
