php数据类型转换笔记

原创 PHP笔记  2017-04-14 22:46  阅读 1,145 views 次

虽然声明php变量不需要声明变量类型,但有时候还是需要用到数据类型转换。php数据类型转换非常简单,只要在变量前加上一个用括号括起来的数据类型名称即可。另外,还可以使用settype()函数来转换。

常用的转换

  • (integer):转换为整型
  • (float):转换为浮点型
  • (string):转换为字符串型
  • (boolean):转换为布尔型
  • (array):转换为数组
  • (object):转换为对象

1、整型转换为其它类型

示例:

<?php
$num=123;
$flo=(float)$num; //将整型转换为浮点类型.结果:123
$str=(string)$num; //将整型转换为字符串类型.结果:'123'
$boo=(boolean)$num; //将整型转换为布尔类型.结果:true
$arr=(array)$num; //将整型转换为数组.结果:$arr[0]=123
$obj=(object)$num; //将整型转换为对象.结果:$arr->scalar=123
var_dump($flo);
var_dump($str);
var_dump($boo);
var_dump($arr);
var_dump($obj);
?>

运行结果:

说明:将整型转换为布尔类型时,只有值为0,转换为布尔类型才为false,其余整型转换为布尔型都为true

2、浮点型转换为其它类型

示例:

<?php
$flo=3.14;
$num=(integer)$flo; //将浮点型转换为整型.结果:3
$str=(string)$flo; //将浮点型转换为字符串类型.结果:'3.14'
$boo=(boolean)$flo; //将浮点型转换为布尔类型.结果:true
$arr=(array)$flo; //将浮点型转换为数组.结果:$arr[0]=3.14
$obj=(object)$flo; //将浮点型转换为对象.结果:$arr->scalar=3.14
var_dump($num);
var_dump($str);
var_dump($boo);
var_dump($arr);
var_dump($obj);
?>

说明:将浮点型转换为布尔类型时,只有值为0.0,转换为布尔类型才为false,其余浮点型转换为布尔型都为true

注意:使用(integer)将浮点型转换为整型,不会四舍五入,直接取整数部分。

3、字符串型转换为其它类型

示例:

<?php
$str='12ab';
$num=(integer)$str; //将字符串转换为整类.结果:12
$flo=(float)$str; //将字符串转换为浮点类型.结果:12
$boo=(boolean)$str; //将字符串转换为布尔类型.结果:true
$arr=(array)$str; //将字符串转换为数组.结果:$arr[0]='12ab'
$obj=(object)$str; //将字符串转换为对象.结果:$arr->scalar='12ab'
var_dump($num);
var_dump($flo);
var_dump($boo);
var_dump($arr);
var_dump($obj);
?>

说明:

  1. 将字符串转换为整类,会取前面数字部分。如果第一个字符不是数字(包括空字符串),则转换结果为0(例:'12a12b'转换结果为12;'a12b'转换结果为0);
  2. 将字符串转换为浮点类型,会取前面数字部分(包括小数点)。和转换为整型一样,如果第一个字符不是数字(包括空字符串),则转换结果为0;
  3. 将字符串转换为布尔类型,当字符串为空字符串时,转换结果才为flase,其余字符串型转换为布尔型都为true(例:''或""转换结果为flase);

4、布尔型转换为其他类型

示例:

<?php
$boo=false;
$num=(integer)$boo; //将布尔型转换为整类.结果:0
$flo=(float)$boo; //将布尔型转换为浮点类型.结果:0
$str=(string)$boo; //将布尔型转换为字符串类型.结果:''
$arr=(array)$boo; //将布尔型转换为数组.结果:$arr[0]=false
$obj=(object)$boo; //将布尔型转换为对象.结果:$arr->scalar=false
var_dump($num);
var_dump($flo);
var_dump($str);
var_dump($arr);
var_dump($obj);
?>

说明:

  1. 将布尔型转换为整类和浮点类时,当值为false,转换结果为0(0.0);当值为true,转换结果为1(1.0);
  2. 将布尔型转换为字符串类型,当值为false,转换结果为:''(空字符串);当值为true,转换结果为'1';

5、将数组或对象转换为其它数据类型

将数组或对象转换为其它数据类型一般用不到,可能用到的就是数组和对象的互转。

示例:

<?php
class A{ //类
public $a=1;
public $b=2;
}
$obj1=new A(); //对象
$arr=(array)$obj1;//将对象转为数组
var_dump($arr);
$obj2=(object)$arr;//将数组转为对象
var_dump($obj2);
?>

运行结果:

settype()函数

settype()函数是用来设置变量的类型,和上边不一样的就是该函数是将变量本身的类型转换,而上边是将值转换后赋值给变量,本身的变量类型并没有改变。

格式:

settype(变量,"类型");

说明:

1、意思是将变量转换为指定类型;

2、当转换成功函数返回true,失败返回false

示例:

<?php
$str="12a34b";
settype($str,"integer"); //将变量$str设置为整型
var_dump($str);
?>

输出结果:int 12

本文地址:https://www.ggbiji.com/php-type-conversion.html
版权声明:本文为 PHP笔记 原创/整理文章,欢迎分享,转载请注明出处!

发表评论


表情