相关疑难解决方法(0)

运算符 <=> 如何比较对象?

在RFC中给出了这个例子:

// only values are compared
$a = (object) ["a" => "b"]; 
$b = (object) ["b" => "b"]; 
echo $a <=> $b; // 0
Run Code Online (Sandbox Code Playgroud)

但是当我执行它时,我得到 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)

php spaceship-operator php-7

3
推荐指数
1
解决办法
790
查看次数

标签 统计

php ×1

php-7 ×1

spaceship-operator ×1