前段时间学习了下php觉得挺简单的,不过这只是相对java而言,php简单了但是还是很有很多细节问题需要注意,为了顺便巩固下java基础知识,我把java和php做了对比。这次比较的是数据类型和运算符。
一.数据类型
先来看看php的数据类型划分:
基本数据类型:整数类型,小数类型【不分单精度和双精度】,boolean类型,字符串
复合数据类型:数组、对象
特殊数据类型:NULL、资源类型
下面是java数据类型划分
基本数据类型:数值类型(整数类型【byte,short,int,long】 浮点类型【float,double】)、字符型char、布尔类型
复合数据类型:数组、类、接口
注:php是一种类似js的弱类型语言,变量不需要任何数据类型修饰符,但是java要明确指定数据类型
另外php的小数类型要注意精度的问题,请看下面一段程序:
<?php echo "<br/>".PHP_INT_SIZE; echo "<br/>".PHP_INT_MAX; //浮点数的精度是14位,从左边第一位不是0的数字开始算起 $c=2.13568974566125311; $d=2.00000012345678; echo "<br/>".$c; echo "<br/>".$d; ?>
下面是输出结果:
就如注释写的那样,php的精度是14位,要从左边第一个不为0的数字算起
php中的boolean还有一点特殊之处,下面几种情况php会把结果看成是false
the 布尔值 FALSE 自身
the 整型值 0 (零)
the 浮点型值 0.0 (零)
空 字符串, 以及字符串 "0"
不包括任何元素的数组
不包括任何成员变量的对象(仅PHP 4.0 适用)
特殊类型 NULL (包括尚未设定的变量)
-
从没有任何标记(tags)的XML文档生成的SimpleXML 对象
二 运算符的比较
算数运算符方面,java和php基本一致,但是算术运算符有一点差异那就是php中有 ===和 !==。对于第一种是比较严格的要求数据类型和值相同;对于位运算符也基本和java一致,但是php没有无符号右移;php中多了一种赋值运算符 .=,在php中.可以看成连接符
对于java和php运算符的优先级,虽然不用死记硬背但是可以记住几个最简单的例如自增++自减--的优先级高于加减乘除,括号的优先级最高
到了这里建议对于位运算符不了解的可以看看这篇文章:
http://blog.csdn.net/walkcode/article/details/1024235
上面的总结可能会有遗漏,希望大家指出。
本文出自 “快乐编程” 博客,谢绝转载!