运算数1类型 | 运算数2类型 | 结果 |
null或string | string | 将NULL 转换为 "",进行数字或词汇比较 |
null或bool | 任何其他类型 | 转换为bool,false<true |
object | object | 自定义类可以定义自己的比较方法,不同类之间不能比较,相同类和数组同样方式比较属性 |
string、resource或number | string、resource或number | 将字符串和资源转换成数字,按普通数学比较 |
array | array | 具有较少成员的数组较小,如果运算数 1 中的键不存在于运算数 2 中则数组无法比较,否则挨个值比较 |
object | 任何其他类型 | object总是更大 |
array | 任何其他类型 | 除object外,array总是更大 |
<?php
class A{
}
$nullval=null;
$str="abc";
$emptyStr="";
$bool=true;
$bool2=false;
$obj1=new A;
$obj2=new A;
$arr=array(1,2,3);
$number=2;
echo ($nullval<=>$str)."\n";//-1
echo ($nullval<=>$emptyStr)."\n";//0
echo ($nullval<=>$bool)."\n";//-1
echo ($nullval<=>$emptyStr)."\n";//0
echo ($obj1<=>$obj2)."\n";//0
echo ($obj1<=>$arr)."\n";//1
echo ($arr<=>$obj1)."\n";//-1
echo ($arr<=>$bool)."\n";//0
echo ($arr<=>$str)."\n";//1
echo ($arr<=>$number)."\n";//1
echo ($bool<=>$number)."\n";//0
echo ($bool2<=>$number)."\n";//-1
echo ($str<=>$number)."\n";//-1
echo ($nullval<=>$number)."\n";//-1
?>