PHP严格比较两个对象是假的

时间:2015-05-10 20:02:00

标签: php arrays object comparison

$a = new stdClass;
$a->first = 'James';
$a->last = 'Doe';

$b = (object) [
    'first' => 'James',
    'last' => 'Doe',
];

echo 'Loose compare: ' . ($a == $b ? 'equal' : 'different') . PHP_EOL; // equal
echo 'Type compare: ' . (gettype($a) == gettype($b) ? 'equal' : 'different') . PHP_EOL; // equal
echo 'Strict compare: ' . ($a === $b ? 'equal' : 'different') . PHP_EOL; // different

如何严格比较不好?更重要的是它们可以严格相同吗?

1 个答案:

答案 0 :(得分:7)

如果$a$b完全相同的对象(相同的内存位置),则进行严格的比较检查。使它们相同(严格)的唯一方法是$a = $b;

请参阅http://php.net/manual/en/language.oop5.object-comparison.php以获取参考资料