学习了php很久了,但是一直对php的资源转换不太明白,看见跟java差不多,但是经过我仔细一看,发现还是有很多的不一样,那么我就说说php中我自己学习的心得:
一首先我们都知道php是弱类型语言?(因为任何一个变量都可以保存到一个以$开头的变量中,所以,说php是弱类型的语言吧,但是不是说它不能规定数据类型,只是保存方式特别),数据类型?
什么数据类型:指的是一定的数据结构与定义在数据结构上的特殊的操作组成某种数据类型。
那么知道了php中有各种各样的数据类,整型,整型,浮点型,字符串型,布尔型,数组型,对象型,资源型,NULL型等,简单类型(标量数据类型),一个数据保存一个值;但是我们有时候未必对这些每个一个地方了解。为了加深自己的理解,然后总结一下:
1由于整型所能够使用的最大存储空间是有限制。
一个整型占用 4 个字节(byte)
一个字节 = 8 位(bit,比特)
需要使用一位表示符号,最高位(31),0为正,1为负该数可以使用php的预定义常量 PHP_INT_MAX来表示,如果该数字在继续增加大,那么将变成是浮点型数,
2如果你仔细观察你会发现,最小值的绝对值,要比最大数的绝对值大一个(补码计算机决定的,位运算时再考虑)
3.
php在定义整型数据时,支持三种进制表示方式(表示一个数,可以有三种形式--------------------十进制,八进制,十六进制
八进制:以0开头。
十六进制:0x开头。
十进制:常规!
强调,0或0x不是数的一部分,只是php为区分不同进制的一种语法而已!
4.手动转换进制
规则:十进制数,除以目标进制。会得到余数和商。如果商不为零,继续使用商除以目标进制,取得余数和商。直到商为零,此时将所有的余数,从下倒上连接即可:
程序中常用的函数
Dec,10
Bin,2
Oct,8
Hex,16
Decbin();10to2
Dechex();10 to 16
Octdec();8 to 10
5浮点数
php的浮点数,不区分单精度和双精度,php只实现了双精度。Php的浮点数,就是双精度。
1)浮点数支持科学计数法表示方式
2)Php能够表示的有效数位14位有效数字
3)浮点数的比较不能用浮点数比较
例如:
if(1-0.2==0.8){//输出true
}
if(1-0.8==0.2){//输出false
}
该问题的原因:
小数在被保存时,需要转成二进制。很少有数,可以完全表示出来。
如何将小数转换成2进制开说:
乘2,取积整数部分:
所有的浮点数,保存的都是近似值,而不是精确值。
6布尔型表示逻辑关系的真假
7.复合数据类型,一个数据保存多个值
数组、对象
8特殊类型
NULL类型