php数据类型转换

Posted 街特闷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

 












以上是关于php数据类型转换的主要内容,如果未能解决你的问题,请参考以下文章

比较有用的php代码片段

php变量和数据类型

使 PHP 代码更加简洁的几个小技巧

php数据类型转换(转)

PHP数据类型转换 (转)

php数组key会将数字类型默认转换为int