strcmp() 和 Spaceship Operator (<=>) 有什么区别

What is the difference between strcmp() and Spaceship Operator (<=>)

PHP 7中我们有一个新的运算符,宇宙飞船运算符<=>,我发现它与strcmp().

它们有什么区别吗?

编辑:我问的是它们之间的区别,没有提到 or What is <=> (the 'Spaceship' Operator) in PHP 7?

strcmp - 它是 function for "binary safe" string comparison

宇宙飞船运算符 (<=>) returns 如果左侧较小则为 -1,如果值相等则为 0,如果左侧较大则为 1。它可以用于所有具有与 < 、<=、==、>=、> 相同语义的通用 PHP 值。此运算符的行为类似于 strcmp() 或 version_compare()。此运算符可用于整数、浮点数、字符串、数组、对象等。

例如,您可以比较 arraysobjects,然后通过 float 得到不同的结果结果:

$var1 = 1.3;
$var2 = 3.2;
var_dump($var1 <=> $var2); // int(-1)
var_dump(strcmp($var1, $var2)); // int(-2)

和其他区别...

More example this

根据官方文档:

"<=>" returns "an integer less than, equal to, or greater than zero" 而 "strcmp" 返回 "<0 , =0 or >0", 所以你可能找不到任何区别。

通常,这就足够了,因为我们不关心返回的确切值是什么,但是,如下所示:

回声 5 <=> 1; // 1
回声 strcmp(5,1); // 4

除了 1,0,-1 之外,我无法从宇宙飞船中获取其他值。