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

<?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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号