PHP7中的宇宙飞船操作员混乱(返回-1)
我对PHP7还很陌生,到目前为止,它看起来很强大。我一直在使用PHP5.6,所以我开始了解spaceship operator的用法。但不知何故,我无法获得语句返回的逻辑PHP7中的宇宙飞船操作员混乱(返回-1),php,php-7,Php,Php 7,我对PHP7还很陌生,到目前为止,它看起来很强大。我一直在使用PHP5.6,所以我开始了解spaceship operator的用法。但不知何故,我无法获得语句返回的逻辑-1。我知道返回到0或1的意义,它们是false或true。谁能澄清一下return-1的用法吗 Function normal_sort($a, $b) : int { if( $a == $b ) return 0; if( $a < $b ) return -1; return 1; }
-1
。我知道返回到0
或1
的意义,它们是false
或true
。谁能澄清一下return-1
的用法吗
Function normal_sort($a, $b) : int
{
if( $a == $b )
return 0;
if( $a < $b )
return -1;
return 1;
}
function space_sort($a, $b) : int
{
return $a <=> $b;
}
$normalArray = [1,34,56,67,98,45];
//Sort the array in asc
usort($normalArray, 'normal_sort');
foreach($normalArray as $k => $v)
{
echo $k.' => '.$v.'<br>';
}
$spaceArray = [1,34,56,67,98,45];
//Sort it by spaceship operator
usort($spaceArray, 'space_sort');
foreach($spaceArray as $key => $value)
{
echo $key.' => '.$value.'<br>';
}
函数正常排序($a,$b):int
{
如果($a=$b)
返回0;
如果($a<$b)
返回-1;
返回1;
}
函数空间排序($a,$b):int
{
返回$a$b;
}
$normalArray=[1,34,56,67,98,45];
//在asc中对数组进行排序
usort($normalArray,'normal_sort');
foreach($k=>v的normalArray)
{
回音$k.=>。$v.
;
}
$spaceArray=[1,34,56,67,98,45];
//按飞船操作员排序
usort($spaceArray,'space_sort');
foreach($spaceArray作为$key=>$value)
{
回显$key.'=>'.$value.'
';
}
比较传递给比较函数的两个值时,有三种可能性:$a<$b
、$a==$b
或$a>$b
。因此需要三个不同的返回值,PHP选择了整数:-1
、0
、和1
。我想它也可能是字符串小的
,相等的
和大的
或整数5
,7
和9
或任何组合,但它不是
从手册
如果第一个参数分别小于、等于或大于第二个参数,则比较函数必须返回小于、等于或大于零的整数
返回$a<$b
-1
returna==b
0
返回$a>$b
1
这不是PHP中类型的工作方式,但您可以这样想:
$a>$b
?其中-1
表示false
,1
表示true
,0
表示两者都不相等。在我标记的问题上,这个答案可能重复:我看到了它们。我的问题不完全是宇宙飞船操作员做什么。返回-1的含义是什么?@T先生,你是说“这是什么意思?”还是“目的是什么?”。意思很清楚,第一个操作数小于第二个操作数。目的是什么?抱歉,我选错了词汇表。:)我完全理解这一点。但是return-1、return-0、return-1返回的是一个-1,0,1的整数,还是返回布尔值true/false?这就是我想要了解的。谢谢你的时间。