闹眼子?这里说的飞船不是真的飞船,是被成为飞船符号(<=>)。
在PHP7,一个新的功能,飞船操作符已经被引入。它是用于比较两个表达式。当第一个表达式比第二个表达式分别小于,等于或大于它返回-1,0或1。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?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这个新特性,可以完美跳出坑。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
$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"
;
}
|
<=> 起飞吧
本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/1956225,如需转载请自行联系原作者