闹眼子?这里说的飞船不是真的飞船,是被成为飞船符号(<=>)。
在PHP7,一个新的功能,飞船操作符已经被引入。它是用于比较两个表达式。当第一个表达式比第二个表达式分别小于,等于或大于它返回-1,0或1。
<?php //整型比较 print ( 1 <=> 1); print ( "<br/>" ); print ( 1 <=> 2); print ( "<br/>" ); print ( 2 <=> 1); print ( "<br/>" ); print ( "<br/>" ); //浮点性比较 print ( 1.5 <=> 1.5); print ( "<br/>" ); print ( 1.5 <=> 2.5); print ( "<br/>" ); print ( 2.5 <=> 1.5); print ( "<br/>" ); print ( "<br/>" ); //字符串比较 print ( "a" <=> "a" ); print ( "<br/>" ); print ( "a" <=> "b" ); print ( "<br/>" ); print ( "b" <=> "a" ); print ( "<br/>" ); ?> |
在之前的博文中提交php浮点性比较的坑,最后使用了bccmp()函数强制转换字符串来解决。
>>详情见:php7采坑记:浮点型数据比较
那么今天,利用php7这个新特性,可以完美跳出坑。
$a = 42735.04; $b = 17806.2; $c = $a / 36; $c = round ( $c , 2); $d = $c * 15; echo '$b value is: ' . $b . "\n" ; echo '$d value is: ' . $d . "\n" ; echo "<br/>" ; if (( round ( $b ,2) <=> round ( $d ,2)) === 0) { echo "ok\n" ; } else { echo "sorry\n" ; } |
<=> 起飞吧