Php 数据类型
| |||||
|
标量数据类型:
布尔型,整型,浮点型,字符串型 | ||||
| 复合类型:
数组,对象 | 特殊类型:
资源型,NULL型 | |||
|
Boolean 布尔类型
布尔值:false
整数型:0
浮点型:0.0
字符串型:空字符串,以及字符串"0"
数组型:不包含任何元素的数组
特殊类型:NULL
- 对于true,false是不区分大小写的
Integer 整型
$a =123; //十进制
$a= 0123; //八进制
$a = 0x1A; //十六进制
- php中不支持无符号整型,也就是说所有整数都是有符号的。
- 一个整数,一般来说占4个字节(和平台有关),32bits,最高位为符号位。
比如,2在内存中的存放形式为:
0 0000000 00000000 00000000 00000010
- 使用 echo PHP_INT_SIZE 可查看所用平台中一个整型所占字节数
- 使用 echo PHP_INT_MAX 可查看最大整数,如果大于此数,会自动转为浮点型。
- 在32位系统下,最大数为 2^31-1(第一位是符号位),大概是21亿左右。
Float 浮点型
精度:从左起,第一个非零数开始计算,比如 0.000123 精度为3
php中最大精度为14位,之后的会自动四舍五入。
比如:
$a =0.1234567890123456789;
echo$a;
输出结果为:
0.12345678901235 . 因为最大精度只能到14位,第十五位四舍五入
所以不要相信浮点数的精度能精确到最后一位
不要去直接比较两个浮点数是否相同!!!
| |||
| String 字符串
一个字符(英文)占一个字节,最大可以达到 2GB。 使用单引号或者双引号包起来 区别:单引号不参与变量的替换 比如: $a = 123; $b = 'abc$a'; Echo $b; 打出 abc$a
转换为字符串: 布尔型 true -> "1" false -> "" 空串 整形 1 -> "1” 浮点型 1.1 -> "1.1" NULL -> "" 空串
| ||
| 字符串转数值: 字符串中没有 . ,E,e 时都会转换为整型 反之,转换为浮点型 | ||
|
Array 数组
定义数组:
$array1 = array(1, "hello", true);
$array2 = array();
或
$array2[0] = 1;
$array2[1] = "hello";
$array2[2] = true;
或
$array3 = array(1=>1, "hello", true); //键值不一定要从0开始,定义了首位键值,后面的会自动增长。但不能使用浮点数作为键值
$array4 = array('beijing' => '北京', 'shanghai' => '上海'); //键值不一定使用数字。
定义一个连续数字的数组:
$array5 = range(1, 100);
遍历数组:
除了传统方法,可以使用foreach()方法
foreach( $array as $key => $val {
echo $val;
}
可以使用print_r 来打印数组,或者var_dump 打印出更详细的数组信息
重要函数:
- count() 得到函数的长度, 返回一个整数
- Is_array() 判断是否为数字,发回布尔值
- Explode(",", $stringName); 依据逗号来拆分字串,返回一个拆分后的数组
- Implode(",", $arrayName); 将数组合成一个字串,用逗号隔开
- Unset() ; 删除一个键值。注意,索引不会改变。比如,删除了索引值为3的键值,下一个索引值还是4,不会提前到3
比如:
$a=array("1","b","c");
unset($a[1]);
echo $a[2]; //打印结果为c