- 此问题在此处已有答案**:
Reference — What does this symbol mean in PHP?(24个答案)
七年前就关门了。
社区在5天前审查了是否重新讨论此问题,并将其关闭:
原始关闭原因未解决
PHP 7引入了Spaceship(〈=〉)操作符,它是什么?它是如何工作的?
Reference — What does this symbol mean in PHP?(24个答案)
七年前就关门了。
社区在5天前审查了是否重新讨论此问题,并将其关闭:
原始关闭原因未解决
PHP 7引入了Spaceship(〈=〉)操作符,它是什么?它是如何工作的?
3条答案
按热度按时间cuxqih211#
<=>
(“Spaceship”)运营商将提供组合比较,因为它将:组合比较操作符使用的规则与PHP目前使用的比较操作符
<
,<=
,==
,>=
和>
相同,有Perl或Ruby编程背景的人可能已经熟悉了PHP7中提出的这个新操作符。ki0zmccv2#
根据the RFC that introduced the operator,
$a <=> $b
计算为:$a == $b
,则为0$a < $b
$a > $b
,则为1在我尝试过的每个场景中,实际情况似乎都是如此,尽管严格地说,official docs只提供了
$a <=> $b
将返回的稍微弱一点的保证当
$a
分别小于、等于或大于$b
时,为小于、等于或大于零的整数无论如何,为什么要使用这样的运算符?RFC再次解决了这个问题-它几乎完全是为了更方便地为
usort
(以及类似的uasort
和uksort
)编写比较函数。usort
将待排序的数组作为其第一个参数,将用户定义的比较函数作为其第二个参数。它使用该比较函数来确定数组中的一对元素中哪一个较大。比较函数需要返回:如果认为第一个参数分别小于、等于或大于第二个参数,则为小于、等于或大于零的整数。
太空船操作员使这一点简洁而方便:
更多使用飞船操作符编写的比较函数的例子可以在RFC的有用性部分找到。
bxgwgixi3#
它是用于组合比较的新运算符,类似于
strcmp()
或version_compare(),但它可以用于所有具有相同语义的PHP值,如<
、<=
、==
、>=
、>
。如果两个操作数相等,则返回0
,如果左操作数较大,则返回1
,如果右边较大,则为-1
。它使用的比较规则与现有比较运算符使用的规则完全相同:一米九氮一x、一米十氮一x、一米十一氮一x、一米十二氮一x和一米十三氮一x。click here to know more