資料型別轉換

2022-08-21 03:45:09 字數 1938 閱讀 5627

一、自動轉換(隱式轉換)

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型別...