整型数据的细节:
① 值可以是十进制,十六进制(ox打头)或八进制表示;
比如:$a=0123;//八进制数(以0开头)
进制的换算成十进制:
0123=3*8的零次方+2*8的一次方+1*8的二次方+0*8的三次方=83
其他类推……
$a=0x1A;//十六进制数0~9,A,B,C,D,E,F共16个数字来表示
0x1A=A*16的0次方+1*16的一次方+x*16的二次方+0*16的三次方=26
② Php不支持无符号整数即php中的整数都是有符号的;
③ 整型数的字长和平台有关,通常是(4个字节有符号数)。Integer值的字长可以用常量php_int_size来表示,最大值可以用常量php_int_max来表示;
④ 如果给定的一个数超出了integer的范围,将会被解释为float;(一个整数一般占用四个字节(和平台有关)一个字节占8bite;0为整数,1为负数; 正的int型最大为2的31次方减一即2147183647,负的int型最大也是2147183647,超过这个数值则数据类型变成浮点型数)
布尔类型的细节:true和false
$a=true;$a=false;
以下值都会被当做false对待:
布尔值false本身;
整型值0(零);
浮点型值0.0(零);
空字符串,以及字符串“0“;
不报括任何元素的数组;
不包括任何成员变量的对象(仅php4.0适用);
特殊类型NULL(包括尚未设定的变量);
从没有任何标记(tags)的XML文档生成的SimpleXML
所有的其它值都被认为是true(包括任何资源)
浮点型细节
① 浮点数也叫双精度数或实数;
② 浮点数的字长和平台有关,通常最大值是1.8e308,并具有14位十进制数字的精度(这个限制很重要);浮点数的精度最大是14位,从左边开始第一个非0的书就是精度开始
若$a=0.234567890222229888,则输出的是0. 0.23456789022223,14位后面的四舍五入,若$a=0.000000023456789022则输出2.3456789022+e8
456.123456789238输出456.12345678924;
字符串的细节
① 一个字符串是由一系列的字符组成,一个字符就是占用一个字节$a=“hello“,则$a占用了5个字节
② 一个字符串可以表示多大的字符串?php对字符串的长度的限制只和运行php程序的该台计算机的内存大小有关,即php的字符串可以足够大,理论是我们对字符串的大小没有限制,只要不超过内存即可;
1)我们定义字符串的时候可以用单引号‘’也可以使用双引号““,区别:
例子:
$a=90;
$user1=”hello$a”;(双引号)
$user2=’hello$a’;(单引号)
Echo ’user1=’user1;
Echo ’user2=’user2;
则输出的是user1=hello90 user2=hello$a
从上面的案例我们看出,当一个变量包含在““中时,认为输出的是它的值,‘’单引号则认为输出的是$a这个符号本身;
2)$v1=”hello\””;(双引号)
$v2=’hello\”’;(单引号)
Echo ’v1’;
Echo ’v2’
输出的是hello hello\”
小结:若字符串是包围在单引号中,除了来处理\”时会输出\”外,其他规则都一样。
Php数据类型的自动转换
变量的类型不由程序员设定的,确切的说,是由php根据该变量使用的上下文在运行时决定的,可以通过var_dump($变量1,$变量2……)的方式来显示其类型。