在php 7中,我们有了一个新的操作符,宇宙飞船操作符<=>,我发现它与strcmp()非常相似(如果不相同)。
他们之间有什么区别吗?
编辑:我问他们之间的区别,不是指php 7中的<=>(宇宙飞船操作员)是什么?还是php 7中的<=>(宇宙飞船)操作符?
可能是php 7中<=>(宇宙飞船操作员)的重复?
来自RFC Similar to strcmp() or version_compare() in behavior, but it can be used on all generic PHP values with the same semantics as =, >.。
@Marcosp&;Rezgude我看到了,但没有回答我的问题。我的问题是有什么区别,我没有看到任何参考。
strcmp比较字符串,<=>比较不同的数据类型。
好的,对不起,我收回我的投票
strcmp-它是用于"二进制安全"字符串比较的函数
如果左侧较小,则spaceship操作符(<=>)返回-1;如果值相等,则返回0;如果左侧较大,则返回1。它可以用于所有语义与=,>相同的通用PHP值。此运算符的行为与strcmp()或version_compare()相似。此运算符可用于整数、浮点数、字符串、数组、对象等。
例如,您可以比较数组或对象,并通过浮动获得不同的结果:
$var1 = 1.3;
$var2 = 3.2;
var_dump($var1 <=> $var2); // int(-1)
var_dump(strcmp($var1, $var2)); // int(-2)
还有其他的区别…
再举个例子
回答很好,我以前没有测试过
根据官方文件:
"<=>"返回"小于、等于或大于零的整数",而"strcmp"retuens"<0、=0或>0",因此您可能无法找到其中的任何差异。
通常情况下,这就足够了,因为我们不关心返回的确切值,但是,有一点可以揭示如下:
回声5<=>1;//1
echo strcmp(5,1);/4
我永远无法从宇宙飞船中得到1,0,-1以外的值。