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

来源:2-1 PHP类和对象

白衣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内容不一致";

}

?>

为什么不一致?

写回答 关注

2回答

  • 炜烨鸿图
    2016-05-27 19:46:04

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

  • 幕布斯9249851
    2016-05-27 17:04:23

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

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181839 学习 · 2577 问题

查看课程

相似问题