PHP基礎(chǔ)之?dāng)?shù)據(jù)類型10——類型轉(zhuǎn)換的判別
PHP 在變量定義中不需要(或不支持)明確的類型定義;變量類型是根據(jù)使用該變量的上下文所決定的。也就是說,如果把一個字符串值賦給變量?$var,$var?就成了一個字符串。如果又把一個整型值賦給?$var,那它就成了一個整數(shù)。
PHP 的自動類型轉(zhuǎn)換的一個例子是加法運算符“+”。如果任何一個操作數(shù)是浮點數(shù),則所有的操作數(shù)都被當(dāng)成浮點數(shù),結(jié)果也是浮點數(shù)。否則操作數(shù)會被解釋為整數(shù),結(jié)果也是整數(shù)。注意這并沒有改變這些操作數(shù)本身的類型;改變的僅是這些操作數(shù)如何被求值以及表達(dá)式本身的類型。
<?php$foo?=?'0';??//?$foo?是字符串?(ASCII?48)$foo?+=?2;???//?$foo?現(xiàn)在是一個整數(shù)?(2)$foo?=?$foo?+?1.3;??//?$foo?現(xiàn)在是一個浮點數(shù)?(3.3)$foo?=?5?+?'10?Little?Piggies';?//?$foo?是整數(shù)?(15)$foo?=?5?+?'10?Small?Pigs';?????//?$foo?是整數(shù)?(15)?>如果想要測試本節(jié)中任何例子的話,可以用?var_dump()?函數(shù)。
Note:
自動轉(zhuǎn)換為?數(shù)組?的行為目前沒有定義。
此外,由于 PHP 支持使用和數(shù)組下標(biāo)同樣的語法訪問字符串下標(biāo),以下例子在所有 PHP 版本中都有效:
<?php$a????=?’car’;?//?$a?is?a?string$a[0]?=?’b’;???//?$a?is?still?a?stringecho?$a;???????//?bar?>類型強制轉(zhuǎn)換PHP 中的類型強制轉(zhuǎn)換和 C 中的非常像:在要轉(zhuǎn)換的變量之前加上用括號括起來的目標(biāo)類型。
<?php$foo?=?10;???//?$foo?is?an?integer$bar?=?(boolean)?$foo;???//?$bar?is?a?boolean?>允許的強制轉(zhuǎn)換有:
(int), (integer) - 轉(zhuǎn)換為整形?integer(bool), (boolean) - 轉(zhuǎn)換為布爾類型?boolean(float), (double), (real) - 轉(zhuǎn)換為浮點型?float(string) - 轉(zhuǎn)換為字符串?string(array) - 轉(zhuǎn)換為數(shù)組?array(object) - 轉(zhuǎn)換為對象?object(unset) - 轉(zhuǎn)換為?NULL?(PHP 5)(binary) 轉(zhuǎn)換和 b 前綴轉(zhuǎn)換支持為 PHP 5.2.1 新增。
注意在括號內(nèi)允許有空格和制表符,所以下面兩個例子功能相同:
<?php$foo?=?(int)?$bar;$foo?=?(?int?)?$bar;?>將字符串文字和變量轉(zhuǎn)換為二進(jìn)制字符串:
<?php$binary?=?(binary)$string;$binary?=?b'binary?string';?>Note:
可以將變量放置在雙引號中的方式來代替將變量轉(zhuǎn)換成字符串:
<?php$foo?=?10;????????????//?$foo?是一個整數(shù)$str?=?'$foo';????????//?$str?是一個字符串$fst?=?(string)?$foo;?//?$fst?也是一個字符串//?輸出?'they?are?the?same'if?($fst?===?$str)?{echo?'they?are?the?same';}?>有時在類型之間強制轉(zhuǎn)換時確切地會發(fā)生什么可能不是很明顯。更多信息見如下小節(jié):
轉(zhuǎn)換為布爾型轉(zhuǎn)換為整型轉(zhuǎn)換為浮點型轉(zhuǎn)換為字符串轉(zhuǎn)換為數(shù)組轉(zhuǎn)換為對象轉(zhuǎn)換為資源轉(zhuǎn)換為 NULL相關(guān)文章:
1. python GUI庫圖形界面開發(fā)之PyQt5信號與槽的高級使用技巧裝飾器信號與槽詳細(xì)使用方法與實例2. python b站視頻下載的五種版本3. JavaScript設(shè)計模式之策略模式實現(xiàn)原理詳解4. JAVA抽象類及接口使用方法解析5. IntelliJ IDEA安裝插件的方法步驟6. python如何寫個俄羅斯方塊7. Intellj Idea中的maven工程Java文件顏色不對,未被識別的解決8. 《CSS3實戰(zhàn)》筆記--漸變設(shè)計(一)9. 如何通過vscode運行調(diào)試javascript代碼10. vscode運行php報錯php?not?found解決辦法
