白衣2
2016-05-27 16:32
<?php
class Person
{
public $name = "NickName";
}
//分别创建两个对象
$p = new Person();
$p1 = new Person();
//比较对象
if ($p === $p1) {
echo "\$p 和\$p1内容一致";
} else {
echo "\$p 和\$p1内容不一致";
}
?>
为什么不一致?
因为你比较的是对象,new关键字的作用是在内存中新开辟一块空间,注意“新”的意思。比方说,执行$p = new Person()之后在内存中新开辟的空间的地址是0x001,执行$p1 = new Person()之后又在内存中开辟新的空间,地址是0x002,接着你比较$p和$p1是否相等,意思就是0x001和0x002是否相等,所以答案是不相等的
对像当然没有绝对等于。如果你if($p->name===$p1->name)就可以了
PHP进阶篇
181839 学习 · 2577 问题
相似问题