PHP 严格比较两个对象是假的
PHP strict compare two objects is false
$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
怎么严格比较不行?更重要的是,它们可以完全相同吗?
严格比较检查 $a
和 $b
是否是 完全相同的 对象(相同的内存位置)。使它们相同(严格)的唯一方法是 $a = $b;
参考http://php.net/manual/en/language.oop5.object-comparison.php
$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
怎么严格比较不行?更重要的是,它们可以完全相同吗?
严格比较检查 $a
和 $b
是否是 完全相同的 对象(相同的内存位置)。使它们相同(严格)的唯一方法是 $a = $b;
参考http://php.net/manual/en/language.oop5.object-comparison.php