文章詳情頁
PHP基礎之數據類型10——類型轉換的判別
瀏覽:2日期:2022-09-14 16:32:55
PHP 在變量定義中不需要(或不支持)明確的類型定義;變量類型是根據使用該變量的上下文所決定的。也就是說,如果把一個字符串值賦給變量?$var,$var?就成了一個字符串。如果又把一個整型值賦給?$var,那它就成了一個整數。
PHP 的自動類型轉換的一個例子是加法運算符“+”。如果任何一個操作數是浮點數,則所有的操作數都被當成浮點數,結果也是浮點數。否則操作數會被解釋為整數,結果也是整數。注意這并沒有改變這些操作數本身的類型;改變的僅是這些操作數如何被求值以及表達式本身的類型。
<?php$foo?=?'0';??//?$foo?是字符串?(ASCII?48)$foo?+=?2;???//?$foo?現在是一個整數?(2)$foo?=?$foo?+?1.3;??//?$foo?現在是一個浮點數?(3.3)$foo?=?5?+?'10?Little?Piggies';?//?$foo?是整數?(15)$foo?=?5?+?'10?Small?Pigs';?????//?$foo?是整數?(15)?>如果想要測試本節中任何例子的話,可以用?var_dump()?函數。
Note:
自動轉換為?數組?的行為目前沒有定義。
此外,由于 PHP 支持使用和數組下標同樣的語法訪問字符串下標,以下例子在所有 PHP 版本中都有效:
<?php$a????=?’car’;?//?$a?is?a?string$a[0]?=?’b’;???//?$a?is?still?a?stringecho?$a;???????//?bar?>類型強制轉換PHP 中的類型強制轉換和 C 中的非常像:在要轉換的變量之前加上用括號括起來的目標類型。
<?php$foo?=?10;???//?$foo?is?an?integer$bar?=?(boolean)?$foo;???//?$bar?is?a?boolean?>允許的強制轉換有:
(int), (integer) - 轉換為整形?integer(bool), (boolean) - 轉換為布爾類型?boolean(float), (double), (real) - 轉換為浮點型?float(string) - 轉換為字符串?string(array) - 轉換為數組?array(object) - 轉換為對象?object(unset) - 轉換為?NULL?(PHP 5)(binary) 轉換和 b 前綴轉換支持為 PHP 5.2.1 新增。
注意在括號內允許有空格和制表符,所以下面兩個例子功能相同:
<?php$foo?=?(int)?$bar;$foo?=?(?int?)?$bar;?>將字符串文字和變量轉換為二進制字符串:
<?php$binary?=?(binary)$string;$binary?=?b'binary?string';?>Note:
可以將變量放置在雙引號中的方式來代替將變量轉換成字符串:
<?php$foo?=?10;????????????//?$foo?是一個整數$str?=?'$foo';????????//?$str?是一個字符串$fst?=?(string)?$foo;?//?$fst?也是一個字符串//?輸出?'they?are?the?same'if?($fst?===?$str)?{echo?'they?are?the?same';}?>有時在類型之間強制轉換時確切地會發生什么可能不是很明顯。更多信息見如下小節:
轉換為布爾型轉換為整型轉換為浮點型轉換為字符串轉換為數組轉換為對象轉換為資源轉換為 NULL 標簽:
PHP
相關文章:
1. IDEA 重新導入依賴maven 命令 reimport的方法2. Docker究竟是什么 為什么這么流行 它的優點和缺陷有哪些?3. idea打開多個窗口的操作方法4. Intellij IDEA 閱讀源碼的 4 個絕技(必看)5. JavaScript實現網頁版五子棋游戲6. Java14發布了,再也不怕NullPointerException了7. 如何通過vscode運行調試javascript代碼8. IntelliJ IDEA 統一設置編碼為utf-8編碼的實現9. IntelliJ IDEA 2020.2正式發布,兩點多多總能助你提效10. IntelliJ IDEA設置編碼格式的方法
排行榜
