一、自動轉換(隱式轉換)
1、其他型別轉換成數值型
①boolean ---> 轉換成數值型(整型、浮點型)
true -> 1 false -> 0
$a=1;
$b=false;
echo $a+$b; //1
$a=1;
$b=true;
echo $a+$b; //2
②string --> 轉換成數值型
不是合法數字開頭的字串會轉換成0,如:
"true" -> 0 "false" -> 0
$str="10.1";
$int=2.1;
echo $str+$int;
$str="2e3";
$int=1;
echo $str+$int; //2001
$str="abcd";
$int=1;
echo $str+$int; //1
$str="1abcd";
$int=1;
echo $str+$int; //2
$str="12a3b4c5";
$int=1;
echo $str+$int; //13
$str="12.1a3b4c5";
$int=1;
echo $str+$int;
$str="3e2ab3";
$int=1;
echo $str+$int; //301
1.數值型別的字串轉換成數值型別本身
2.當字串中以合法數字開頭的時候,一直取到你第乙個非法數字之前
"123abcd" -> 123
"2e3b34" -> 2e3(2000)
"2e3b4e5" -> 2e3(2000)
$a=1;
$b="true"; //加雙引號則為非法數字開頭的字串,去掉引號則為布林型
echo $a+$b; //1
3.空字串轉換成數值型別
'' -> 0 "" -> 0 null -> 0
2、其他型別轉換成字串型
數值型 -> 值為數值本身的字串
布林型別
true -> 1
false -> 空字串
陣列 -> array
物件 -> 不能轉換成字串
資源 -> resource #id 數字
空 -> 空字串
3、其他型別轉換成布林型
轉換成布林型的false:
0 -> false 0.0 -> false false -> false
'' "" '0' "0" -> false
空array() -> false null -> false
其他時候都是true
" " -> true "false"->true "0.0"->true
二、強制轉換(顯示轉換)
(int) (integer) -> 強制轉換成整型
(float) (double) (real) -> 強制轉換成浮點型別
(string) -> 強制轉換成字串型別
(bool) (boolean) -> 強制轉換成布林型別
(array) -> 強制轉換成陣列
(object) -> 強制轉換成物件
三、永久轉換
settype($var ,type):設定變數的型別
type的值可為:
"boolean" (或為"bool",php4.2.0起)
"integer" (或為"int",php4.2.0起)
"float" (php4.2.0之後可用,舊版中使用"double")
"string"
"array"
"object"
"null" (php4.2.0起)
資料型別 型別轉換
這樣的語句將報錯,因為char型別精度低於int型別,編譯器無法將其自動轉換,只能進行強制轉換 int x 65 char ch char x 舉例1 int age 19 char 女 char result age int 不可以自動轉換成char 精度損失 舉例2 int a 10 int b...
Objective C資料型別 資料型別轉換
資料型別 1.objective c資料型別可以分為 基本資料型別 物件資料型別和id型別。2.基本資料型別有 int float double和char型別。3.物件型別就是類或協議所宣告的指標型別,例如 nsautoreleasepool pool 其中,nsautoreleasepool是乙個...
資料型別轉換
資料型別轉換 public class typeconvert 一 容量小的資料型別自動轉換為容量大的資料型別 資料型別按容量大小排序為 byte,short,char int long float double byte,short,char之間不會互相轉換,他們三者在計算時首先回轉換為int型別...