php的八种数据类型
在php中将数据分为三大类八小类:
- 简单(基本)数据类型:4个小类
- 整型:int/integer
- 浮点型:float/double,表示小数或整型存不下的整数
- 字符串型:string,系统根据实际长度分配,表示字符串(引号)
- 布尔类型:bool/boolean
- 复合数据类型:2个小类
- 特殊数据类型:2个小类
类型转换
ps:
eg:
<?php
// 数据类型
// 创建数据
$a = 'abc1.1.1.1';
$b = '1.1.1abc';
// 自动转换
// 算数运算:系统先转换成数值类型(整型和浮点型),然后运算
echo $a + $b ; // 1.1 (因为$a转为数字是0,$b转为数字是1.1)
// 强制转换
echo '<br/>', (float)$a, " ", (float)$b; // 0 1.1
类型判断
eg:
// 判断数据类型
echo '<hr/>';
var_dump(is_int($a)); // bool(false)
var_dump(is_string($b)); // bool(true)
eg:
<?php
// 数据类型
// 创建数据
$a = 'abc1.1.1.1';
$b = '1.1.1abc';
echo '<hr/>';
echo gettype($a); // string
// 设置类型 settype返回bool类型,转换成功为true,失败为false
echo '<hr/>';
var_dump(settype($b, 'int')); // bool(true)
echo '<hr/>';
echo gettype($b), " ", $b; // integer 1
简单类型
整数类型
ps:进制转换你可以用原理,自己写公式转换,或者用进制函数如:decbin()。具体自己去查。
浮点类型
eg:
<?php
// 2.浮点型
$f1 = 1.23;
$f2 = 1.23e10;
$f3 = PHP_INT_MAX + 1; // 整型超过自身存储的大小后,会用浮点存储
var_dump($f1, $f2, $f3); // float(1.23) float(12300000000) float(9.2233720368548E+18)
ps:尽量不要用浮点数做精确判断。
eg:
// 浮点数判断
$f4 = 0.7;
$f5 = 2.1;
$f6 = $f5 / 3;
var_dump($f4 == $f6); // bool(false)
布尔类型
eg:
// 3.布尔类型
$b1 = true;
$b2 = false;
var_dump($b1, $b2); // bool(true) bool(false)