php == strcmp,关于php:strcmp()和之间有什么区别 | 码农家园

在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以外的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值