昨天剛講完PHP基礎知識數據類型,今天就來講講PHP數據類型的轉換。
轉換變量或者值的類型,轉換成其他數據類型的方法主要分為兩大類:自動轉換和強制轉換。
(int)、(integer):轉換成整形
(float)、(double)、(real):轉換成浮點型
(string):轉換成字符串
(bool)、(boolean):轉換成布爾類型
(array):轉換成數組
(object):轉換成對象
一、自動轉換類型:
自動類型轉換就是編譯器默默地、隱式地、偷偷地進行的數據類型轉換,這種轉換不需要程式設計師幹預,會自動發生。
自動轉換,通常發生在不同數據類型的變量進行混合運算時。一般只有四種標量類型int、float、string、bool才會進行自動轉換。
註:
字符串、數字參與運算,字符串先轉換成數字;
轉換後的數字從字符串開始的數值開始,不帶小數點則為int,否則為false;
字符串"abcsd"直接轉換成0;
整型轉化為浮點型,由於浮點型的精度範圍大於整型,所以轉化後的精度不會改變;
浮點型轉化為整型,將自動捨棄小數點部分,只保留整數部分;
如果一個浮點數超過整形數字的有效範圍,其結果是不確定的。;
當字符串轉化為數字時,轉化後的數字是從字符串開始部分的數值型字符串,數值型字符串包括用科學計算法表示的數字。
NULL轉為字符串,為空字符
二、強制類型轉換:
自動類型轉換是編譯器根據代碼的上下文環境自行判斷的結果,有時候並不是那麼「智能」,不能滿足所有的需求;
如果需要,程式設計師也可以自己在代碼中明確地提出要進行類型轉換,這稱為強制類型轉換。
PHP數據類型強制轉換有三種方式:
1、在轉換的變量前加上目標類型:包括(int)整型、(bool)布爾型、(float)浮點型、(string)字符串、(array)數組、(object)對象;
2、使用內置轉換函數intval()、floatval()、strval()、boolval()
以上兩種方法均沒有改變被轉換變量本身的類型,而是轉換得到新的類型數據值給變量,原始變量的類型和值不變。
3、setType() 會將變量本身類型改變成其他類型。
數據類型轉換的注意事項:
類型轉換中浮點型轉換成整型,會捨棄小數部分,只保留整數。
字符串轉換為數字時,轉換後的數字是從字符串開始部分的數值型字符部分轉換的。
自動類型轉換 VS 強制類型轉換
可以自動轉換的類型一定能夠強制轉換,但是,需要強制轉換的類型不一定能夠自動轉換;
現在我們學到的數據類型,既可以自動轉換,又可以強制轉換,以後我們還會學到一些只能強制轉換而不能自動轉換的類型。
可以自動進行的類型轉換一般風險較低,不會對程序帶來嚴重的後果;
只能強制進行的類型轉換一般風險較高,或者行為匪夷所思;
就是很奇怪的一種轉換,這會導致取得的值也很奇怪;
就是風險極高的一種轉換,一般會導致程序崩潰。
使用強制類型轉換時,程式設計師自己要意識到潛在的風險。
文章收集與網絡,辛苦收集轉載請備註出處一隻大臉貓博客!
好了今天就分享到這裡,拜拜我是你們的大朋友計算機愛好者大臉貓。
今日推薦:
PHP丨PHP基礎知識之數據類型
程式設計師日常小漫畫
PHP丨PHP基礎入門——函數「理論篇」
下期預告(變量類型測試函數的使用方法)
is_bool():判定是否為bool
is_int();判定是否為整型
is_float():判定是否為浮點型
is_string():判定是否為字符串
is_array();判定是否為數組
is_object():判定是否為對象
is_resource():判定是否為資源
is_null():判斷是否為空
is_scalar():判斷是否為標量
is_numeric():判斷是否為數字或數字字符串
is_callable():判斷是否為有效函數名
今日提問:【怎麼看待PHP不聲明數據類型?】
#php#