php數據類型轉換


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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM