初学php时总结的变量之间的相互转换。只适合小白总结的时候看。当然,其中还有很多不合适的地方。我会尽我最大的努力进行修改
<?php
/**
2016年10月7日10:08:45
8大变量类型中间相互转化
**/
变量类型之间的相互转化(使用 var_dump() 测试)
php中自动转化的就是 + ,如果存在浮点型,结果是浮点型,否则是整形。无视字符串
settype(变量, 转化的类型); 返回bool 改变一个变量的类型
settype($var, "bool/int/float/ string/array/object/null");
强制类型转换:要转换的变量之前加上用括号括起来的目标类型
允许的强制转换有:
(int), (integer) - 转换为 整型(integer)
(bool), (boolean) - 转换为 布尔型(boolean)
(float), (double), (real) - 转换为 浮点型(float)
(string) - 转换为 字符串(string)
(binary) - 转换为二进制 字符串(string) (PHP 6)
(array) - 转换为 数组(array)
(object) - 转换为 对象(object)
(unset) - 转换为 NULL (PHP 5)
(binary) 转换会在结果前面加上前缀'b',PHP 5.2.1 新增
转化成string型的,
1.只要使用 . 或者 .= 连接就可以了。字符串操作符
2.一个值可以通过在其前面加上(string)
3.用strval()函数来转变成字符串
bool型转化成string ==> TRUE 值被转换成 字符串"1"。 Boolean FALSE 被转换成"" (空的字符串)。
NULL 总是被转变成空的字符串。
数组-->字符串 string implode(',' $arr)
转化成array型
1.int float string bool resource ,转换成array型,得到只有一个元素的数组(下标为0),所以 (array)$a 和array($a) 是一样的
在一个值前加(array)就可以转化了,
null转化成数组得到一个空数组array()
2.字符串有特殊的转换技巧,需要用到函数
转化成 Object (对象), 有对象肯定有类(class),
1.在一个值前加(object),就可以转化,转化之后该值就成了该对象scalar的属性值了
$obj = (object) 'nihao';
echo $obj->scalar; //你好
resource(资源类型), 资源类型是一种特殊变量,保存了到外部资源的一个引用,通过专门的函数来建立和使用的,
1.资源类型变量保存的是打开文件、数据库连接、图形画布区域等等的 特殊句柄,转换时没有任何意义的
2.get_resource_type(handle) 返回资源类型的字符串
null类型
1.把一个变量转换成null类型,应该使用 (unset)$m 会把这个变量删除并且unset掉他的值
2.unset($a) 是没有返回值的
想要转化成int型的
1.(int)$a; 强制类型转换
2.只要 +0 就可以了
float()型的一些函数
1. string 转化成 float或者int,只要 string 本身符合特点,直接 +0.0 就OK
2. float round(1.2352,指定精度) — 对浮点数进行四舍五入
round(3.4); //3
round(3.5); //4 默认精度为0
round(4321.23456, 3); //4321.235
round(4321.1234, -3); //4000
float ceil(value) 进一法取整,
float floor(value) 舍去法取整
number_format() 以千分位输出格式化数字
number_format(number, 小数点位数(), 小数标记符'.',整数标记符号',')
number_format(123456789.987654321, 6, !, @); //123@456@789!987654
number_format(123456789, 3); //123,456,789.000
字符串之间是用 . 来连接的
而+- / *是数值之间
**/
$int = 629;
$float = 62.9;
$str = 'hello world !';
$arr = array(1, 2.3,'b', array(5, 'b'), 6);
//int-->float
$int_float = $int+0.0; //float 629
$int_float2 = (float)$int; //float 629
//int-->string
$int_str = (string)$int; //string '629'
$int_str2 = $int.$str; //string '629hello world !'
//float-->int
/*
settype($int, "array");
print_r($int); //Array ( [0] => 629 )
*/
var_dump($int_str2);