В RFC приведен пример:
// 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
Теперь я не понял, как <=> сравнивает объекты? В RFC говорится, что он сравнивается только по значениям.
PS Я использую PHP 7.0.4-6 + deb.sury.org ~ trusty + 1 (cli) (NTS) под бродягой
UPD:
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