在 PHP 7 中,我们有一个新的运算符,即太空飞船运算符<=>
,我发现它与strcmp()
非常相似(如果不相同)。
它们之间有什么区别吗?
修改:我问他们两者之间的区别,没有提到What is <=> (the 'Spaceship' Operator) in PHP 7?或What is <=> (the 'Spaceship' Operator) in PHP 7?
答案 0 :(得分:4)
strcmp - 对于&#34;二进制安全&#34; 功能 字符串比较
如果左侧较小,则飞船运营商(&lt; =&gt;)返回-1,如果值相等则返回0,如果左侧较大则返回1。它可以在所有通用PHP值上使用,其语义与&lt; ,&lt; =,==,&gt; =,&gt;。此运算符的行为与strcmp()或version_compare()类似。此运算符可以与整数,浮点数,字符串,数组,对象等一起使用。
例如,您可以比较数组或对象,并通过 float 获得不同的结果:
python-libarchive-c
和其他差异......
答案 1 :(得分:0)
根据官方文件:
&#34;&LT; =&GT;&#34;返回&#34;小于,等于或大于零的整数&#34;而&#34; strcmp&#34; retuens&#34;&lt; 0,= 0或&gt; 0&#34;,所以你可能没有找到任何区别。
通常情况下,这就足够了,因为我们并不关心返回的确切值,但是,有些内容如下所示:
echo 5&lt; =&gt; 1; // 1
echo strcmp(5,1); // 4
我永远无法从飞船上获得除1,0,-1以外的值。