1. 程式人生 > >php數據類型轉換

php數據類型轉換

nbsp 自動轉換 lse ech 不同 col 空字符 ray dump

PHP屬於弱類型語言,不像java,C++等語言是強類型語言,區別在於,弱類型的語言是自動轉換數
據類型,強類型語言必須手動聲明類型。

1)自動類型轉換,五種數據類型,標量中的四個類型和null都可以通過運算自動轉換類型。
布爾值參與運算

1 true ---> 1 false ---> 0

字符串和數字運算,字符串先轉換為數字在運算。
字符串轉換為數字,從前開始到第一個不是數字的字符結束(不符合的內容清空)。
整型轉換為浮點數 ,精度不改變。
浮點數轉換為整型舍去小數點,保留整數部分。
如果浮點數超出整數範圍,答案不確定。
null 值轉換為字符串,是空字符串。

 1 //bool to int 
2 var_dump(true + 1);//2 true->1 3 var_dump(false + 1);//1 false->0 4 var_dump(null + 1);// 1 null-> 0 5 echo ‘<hr/>‘; 6 7 8 // bool to float 9 var_dump(true + 1.0);// float 2 10 var_dump(false + 1.0);// float 1 var_dump(null + 1.0);// float 1 11 echo ‘<hr/>‘; 12 13 //string to int 14 var_dump
(‘123‘ + 1);//124 ‘123‘->123 15 var_dump(‘abc123‘ + 1);//1 ‘abc123‘->0 16 var_dump(‘123abcdefggggggggggg;8000‘ + 1);//124 17 var_dump(‘a123‘ + 1);//1 18 var_dump(‘1a123‘ + 1);//2 19 20 //php7.0版本所有進制都不轉 21 var_dump(‘077abc‘+1);// 78 077->77 八進制不轉換 22 var_dump(‘0b11abc‘+1);//1 //0b 不轉換 23 var_dump(‘0xffhsahahhahah‘+1);//
1 0x不轉換 24 //php 5.6以下都會轉換為 0xff->255 25 26 echo ‘<hr/>‘; 27 //string to float 28 var_dump(‘1.234abcdef‘+ 1.0);//2.234 29 var_dump(‘1.234E3‘+1.0);//1235 30 var_dump(‘1e5‘+1.0);//2 100001 31 var_dump(‘1E-5‘+1.0);//1.00001

2)強類型轉換

使用括號加目標類型進行轉換

1  (int)(integer)
2   (bool)(boolean)
3   (float)(real)
4   (string)
5   (array)
6   (object)

使用類型轉換函數

settype() 永久轉換類型的函數(重點)

第一個參數 你要改變類型的變量
第二個參數 你要改變的類型名
intval() 轉換為整型
floatval() 轉換為浮點數
strval() 轉換為字符串

 1 <?php
 2   $a = 1;
 3   var_dump($a);
 4   var_dump((int)$a);
 5   var_dump((integer)$a);
 6   var_dump((bool)$a);
 7   var_dump((float)$a);
 8   var_dump((real)$a);
 9   var_dump((string)$a);
10  var_dump((array)$a);
11  var_dump((object)$a);
12  var_dump($a);
13  var_dump($a);
14  var_dump($a);
15  var_dump($a);
16  var_dump($a);
17  echo ‘<hr/>‘;
18  $b = 100;
19  var_dump($b);
20  //下面函數是永久有效的類型轉換
21  settype($b,‘string‘);
22  var_dump($b);
23  var_dump($b);
24  var_dump($b);
25  var_dump($b);
26  var_dump($b);
27  var_dump($b);
28  echo ‘<hr/>‘;
29 //下?的函數也是當次有效 和最開始的強制類型轉換一樣 只不過語法不同而已
30  $m = 200;
31  var_dump(intval($m));
32  var_dump(floatval($m));
33 var_dump(strval($m));
34  var_dump($m);
35  var_dump($m);
36  var_dump($m);

php數據類型轉換