为了账号安全,请及时绑定邮箱和手机立即绑定

<?php class Person { public $name = "NickName"; } //分别创建两个对象 $p = new Person(); $p1 = new Person(); //比较对象 if ($p === $p1) { echo "\$p 和\$p1内容一致"; } else { echo "\$p 和\$p1内容不一致"; } ?>

<?php

class Person

{

public $name = "NickName";

}

//分别创建两个对象

$p = new Person();

$p1 = new Person();

//比较对象

if ($p === $p1) {

echo "\$p 和\$p1内容一致";

} else {

echo "\$p 和\$p1内容不一致";

}

?>

为什么不一致?

正在回答

2 回答

因为你比较的是对象,new关键字的作用是在内存中新开辟一块空间,注意“新”的意思。比方说,执行$p = new Person()之后在内存中新开辟的空间的地址是0x001,执行$p1 = new Person()之后又在内存中开辟新的空间,地址是0x002,接着你比较$p和$p1是否相等,意思就是0x001和0x002是否相等,所以答案是不相等的

0 回复 有任何疑惑可以回复我~

对像当然没有绝对等于。如果你if($p->name===$p1->name)就可以了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

<?php class Person { public $name = "NickName"; } //分别创建两个对象 $p = new Person(); $p1 = new Person(); //比较对象 if ($p === $p1) { echo "\$p 和\$p1内容一致"; } else { echo "\$p 和\$p1内容不一致"; } ?>

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信