1.整型
32位系统中,有效范围 -2147483648 ~ 2147483647
可以用八进制, 十进制, 十六进制来表示. 八进制数字前面0开头, 十六进制前面0x开头
注意:如果八进制中出现非法数字(大于7的数, 八进制逢8进位)如8, 9, 非法数字自身以及后面的数字都将被忽略
例:
$num1 = 123;
$num2 = 0123;
$num3 = 0x123;
$num4 = 012839;
echo "num1-->" . $num1 . '<br/>';
echo "num2-->" . $num2 . '<br/>';
echo "num3-->" . $num3 . '<br/>';
echo "num4-->" . $num4 . '<br/>';
输出结果为(自动转为10进制了):
num1-->123
num2-->83
num3-->291
num4-->10
其中num4的给值中有非法数字,所以从2开始,后面的数字都被忽略了,所以输出结果会是10,转化为八进制就是012
进制的转换规则可以参考:
http://baike.baidu.com/view/883725.htm
2. 布尔值
php中的布尔值跟js等其他弱类型语言中类似,除了传统的true, false外, 0, 0.0, 空字符串"",仅声明为赋值的变量都是false
$bool1 = true;
$bool2 = false;
$bool3 = 0;
$bool4 = 0.0;
$bool5 = "";
$bool6;
echo '$bool1 --->'. ($bool1) . '<br/>';
echo '$bool2 --->'. ($bool2) . '<br/>';
echo '$bool3 == false ? --->'. ($bool3 == false) . '<br/>';
echo '$bool4 == false ? --->'. ($bool4 == false) . '<br/>';
echo '$bool5 == false ? --->'. ($bool5 == false) . '<br/>';
echo '$bool6 == false ? --->'. ($bool6 == false) . '<br/>';
输出结果为:
$bool1 --->1
$bool2 --->
$bool3 == false ? --->1
$bool4 == false ? --->1
$bool5 == false ? --->1
$bool6 == false ? --->1
1表示为真
3.浮点数
比整型有效范围大很多, 1.7E-308~1.7E+308
浮点数可以是标准写法也可以是科学计数法表示
4.字符串
由数字,字母,符号组成, 定义字符串可以用单引号', 双引号",或者界定符<<<
单引号与双引号差不多, 只是双引号可以在双引号内引用变量,输出变量值, 单引号中的变量不会输出值,而是原样打印出来
例如:
$str1 = 'abc';
echo '$str1';
echo "$str1";
输出结果为:
$str1
abc
$str_special =<<<str
//content you want to
// type
str;
注意:
界定符起始符<<<str 前面不能有空格, 结束符 str; 要单独一行,且前面不能有空格,不然会报错. 在起始符与结束符之间的变量同双引号一样,会输出变量的值. 其中str只是一个起止标识,换成别的也行,但要起止一致,成对出现. 不能一个是a,一个是b
5.null
php中, 不区分null, NULL,是一样的.
三种情况下变量值会是null,赋值为null,声明了但未赋值, 被函数unset过的变量
$null_type1 = null;
$null_type2;
$null_type3 = "";
unset($null_type3);
echo '$null_type1 --->'. ($null_type1==null) . '<br/>';
echo '$null_type2 --->'. ($null_type2==null) . '<br/>';
echo '$null_type3 --->'. ($null_type3==null) . '<br/>';
类型转换
可用转换类型为: boolean, integer, float, array, null, object以及string
可以直接强转如, (boolean)var
也可以通过函数settype(var, toType);
toType是string类型的, 转换成功返回true, 反之false