首页 >后端开发 >php教程 >php数据类型转换实例详解

php数据类型转换实例详解

怪我咯
怪我咯原创
2017-04-27 17:09:246626浏览

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

代码运行结果:

20170424094845.png

第二种:

使用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);
?>

代码运行结果:

2.png

第三种:

使用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)
?>

代码运行结果:

3.png

1486188938564607.gif当字符串转换为整型或浮点型时,如果字符串是以数字开头的,就会先把数字部分转换为整型,在舍去后面的字符串;如果数字中含有小数点,则会取到小数前一位。

PHP数据类型转换实例

本实例将使用第一种和第三种两种方法将指定的字符串进行类型转换,比较两种方法之间的不同,代码如下:

<?php
header("content-type:text/html;charset=utf-8");        //设置编码
$num=&#39;3.1415926r*r&#39;;
echo &#39;使用(integer)操作符转换变量$num类型:&#39;;        //使用integer转换类型
echo (integer)$num .&#39;<br/>&#39;;
echo &#39;输出变量$num的值:&#39;.$num.&#39;<br/>&#39;;               //输出原始变量$num
echo &#39;使用settype函数转换变量$num类型:&#39;;
echo settype($num,&#39;integer&#39;).&#39;<br/>&#39;;                 //使用settype函数转换类型
echo &#39;输出变量$num的值:&#39;.$num;                       //输出原始变量$num
                       
?>

代码运行结果:

4.jpg

从上面的的实例可以看到,使用integer操作符能直接输出转换后的变量类型,并且原变量不发生任何变化。而是用settype()函数返回的是1,也就是true,原变量就改变了,在实际应用中,可根据自己的需求选择转换方式。

下一节,我们讲解“怎么检测数据类型”。

以上是php数据类型转换实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn