在RFC中给出了这个例子:
Run Code Online (Sandbox Code Playgroud)// only values are compared $a = (object) ["a" => "b"]; $b = (object) ["b" => "b"]; echo $a <=> $b; // 0
但是当我执行它时,我得到 1 作为输出:
$a = (object) ["a" => "b"];
$b = (object) ["b" => "b"];
echo $a <=> $b; //1
Run Code Online (Sandbox Code Playgroud)
我现在不明白 <=> 如何比较对象?在 RFC 中,它表示仅通过值进行比较。
PS我在vagrant下使用PHP 7.0.4-6+deb.sury.org~trusty+1 (cli) ( NTS )
更新:
php > echo (object)["b"=>"b"] <=> (object)["b"=>"b"];
0
php > echo (object)["b"=>"b"] <=> (object)["a"=>"b"];
1
php > echo (object)["a"=>"b"] <=> (object)["b"=>"b"];
1
Run Code Online (Sandbox Code Playgroud)