PHP是弱类型语言,因为在我们申明一个变量的时候,并不需要指明它保存的数据类型,但是PHP虽然是弱语言,但有时候仍然需要用到类型转换。
PHP允许转换的类型如下表:
转换操作符 | 转换类型 | 举例 |
boolean,bool | 转换成布尔类型 | (boolean)$num,(boolean)$str |
string | 转换成字符串 | (string)$boo,(string)$flo |
integer,int | 转换成整形 | (integer)$boo,(integer)$str |
float,double | 转换成浮点型 | (float)$str |
array | 转换成数组 | (array)$str |
object | 转换成对象 | (object)$str |
PHP中的类型转换非常简单,有三种转换方法:
第一种:
只需要在要转换的变量之前加上用括号括起来的类型名称即可,像下面这样:
<?php $num1=3.14; $num2=(int)$num1; var_dump($num1); echo "<br/>"; var_dump($num2); ?>
代码运行结果:
第二种:
使用3个具体类型的转换函数,intval()、floatval()、strval()
<?php $a="123.9abc"; $int=intval($a); //转换后数值:123 var_dump($int); echo "<br/>"; $float=floatval($a); //转换后数值:123.9 var_dump($float); echo "<br/>"; $str=strval($float); //转换后字符串:"123.9" var_dump($str); ?>
代码运行结果:
第三种:
使用settype()函数,该函数可以将指定的变量转换成指定的数据类型,语法如下:
settype(mixed var,string type)
参数var为指定的变量;参数type为指定的数据类型。参数type有7个可选值,即boolean,float,integer,array,null,object和string,如果转换成功setype()函数返回true,否则返回false。
<?php $num=12.8; $flg=settype($num,"int"); var_dump($flg); //输出bool(true) echo "<br/>"; var_dump($num); //输出int(12) ?>
代码运行结果:
当字符串转换为整型或浮点型时,如果字符串是以数字开头的,就会先把数字部分转换为整型,在舍去后面的字符串;如果数字中含有小数点,则会取到小数前一位。
PHP数据类型转换实例
本实例将使用第一种和第三种两种方法将指定的字符串进行类型转换,比较两种方法之间的不同,代码如下:
<?php header("content-type:text/html;charset=utf-8"); //设置编码 $num='3.1415926r*r'; echo '使用(integer)操作符转换变量$num类型:'; //使用integer转换类型 echo (integer)$num .'<br/>'; echo '输出变量$num的值:'.$num.'<br/>'; //输出原始变量$num echo '使用settype函数转换变量$num类型:'; echo settype($num,'integer').'<br/>'; //使用settype函数转换类型 echo '输出变量$num的值:'.$num; //输出原始变量$num ?>
代码运行结果:
从上面的的实例可以看到,使用integer操作符能直接输出转换后的变量类型,并且原变量不发生任何变化。而是用settype()函数返回的是1,也就是true,原变量就改变了,在实际应用中,可根据自己的需求选择转换方式。
下一节,我们讲解“怎么检测数据类型”。
Atas ialah kandungan terperinci php数据类型转换实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!