數據類型的轉換
前言
PHP 中,定義變數時不需要指定數據類型,通過「值」,自動判斷類型。也就是說,如果你對一個變數重新賦值,那麼數據類型也隨之改變。
而有些語言是這樣的:
問:PHP 這樣靈活的設計,是優點還是缺點?
自動轉換類型
問:$a 是什麼數據類型?
很明顯,$a 變成了 「int」 整形。一旦使用「+」運算符,那麼:
任何一個操作數是 float,結果就是float
否則操作數會被強制轉為「int」,結果自然也是 int
該轉換僅用於求值的過程(臨時工)
常用轉換
其他數據類型轉為布爾值
我們都知道,if 語句使用很頻繁,也很簡單:
如果expr表達式的最終計算結果是」true」,那麼執行a段代碼,否則執行b段。
下面這些if條件,沒有任何一個是「布爾」類型的expr,那會怎麼樣呢?
總結:PHP解釋器會自動轉換數據類型為布爾型,再進行運算。
比如:
強制轉換
上面講的都是PHP解釋器,根據代碼的需要,自動為我們轉換的。如果,我們需要進行強制轉換呢?
完整的手冊
(int), (integer) - 轉換為整形 integer
(bool), (boolean) - 轉換為布爾類型 boolean
(float), (double), (real) - 轉換為浮點型 float
(string) - 轉換為字元串 string
(array) - 轉換為數組 array
(object) - 轉換為對象 object
(unset) - 轉換為 NULL (PHP 5)
損失
問:如何用整數來表示「1.5」?
答:根本表示不了,只能放棄小數點,變成「1」。
問:這又當如何?
答:請自行測試。
總結
本文簡單的給大家介紹了一下數據類型的自動轉換、強制轉換、損失等。
雖然沒有詳細解釋所有的轉換,但作為拋磚引玉本文說的已經夠多,希望能給大家帶來新的啟發和學習點。
本文參考:PHP手冊,類型一節。
TAG:PHPer |
※變數、數據類型、標識符
※VBA之數據類型和常量與變數
※C語言數據類型、常量和變數
※常量、變數、數據類型、標識符
※機器學習探索性數據分析的數據類型
※XSD 數值數據類型
※通過重載避免隱式類型轉換
※淺談數字貨幣交易所的訂單類型
※C++模板取函數參數類型和返回值類型的方法
※細數各種運動類型對糖尿病的影響
※詳解變壓器的類型及其結構、參數。
※兩種類型的抑鬱
※R語言:數據類型(向量、數組、矩陣、 列表和數據框)
※XSD 雜項 數據類型
※類型論:一類新的數學
※JS 中對變數類型的判斷
※Python數據類型、運算符、變數
※XSD 字元串 數據類型
※Perl 數據類型
※數據類型「系統自動編號」