PHP类实例教程(五):对象的比较
2009-08-27 11:39
323 查看
在PHP中有 = 赋值符号、== 等于符号和 === 全等于符号, 这些符号代表什么意思?当使用比较操作符(==)时,对象以一种很简单的规则比较:当两个对象有相同的属性和值,属于同一个类且被定义在相同的命名空间中,则两个对象相等。等于符号比较对象时,比较对象是否有相同的属性和值。注意:== 比较两个不同的对象的时候,可能相等也可能不等。
使用 == 符号比较两个对象,比较的仅仅是两个对象的内容是否一致。当使用全等符(===)时,当且仅当两个对象指向相同类(在某一特定的命名空间中)的同一个对象时才相等。是否在是同一个对象,两边指向的对象是否有同样的内存地址。
结果 === 比较的是两个变量是否一个对象。
一个等于符号(=)表示赋值,是赋值计算。如果将对象赋予变量,是指变量将指向这个对象。
<?php class Person { public $name = "NickName"; } //分别创建两个对象 $p = new Person(); $p1 = new Person(); //比较对象 if ($p == $p1) { echo "/$p和/$p1内容一致"; } else { echo "/$p和/$p1内容不一致"; } echo "<br />"; $p->name = "Tom"; 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不是一个对象"; } echo "<br />"; $p->name = "Tom"; if ($p === $p1) { echo "/$p和/$p1是一个对象"; } else { echo "/$p和/$p1不是一个对象"; } ?>
结果 === 比较的是两个变量是否一个对象。
一个等于符号(=)表示赋值,是赋值计算。如果将对象赋予变量,是指变量将指向这个对象。
<?php class Person { public $name = "NickName"; } $p = new Person(); $p1 = new Person(); $p2 = $p1; //变量$p2指向$p1指向的对象 if ($p2 === $p1) { echo "/$p2和/$p1指向一个对象"; } else { echo "/$p2和/$p1不指向一个对象"; } echo "<br />"; $p = $p1; //变量$p指向$p1指向的对象 if ($p === $p1) { echo "/$p和/$p1指向一个对象"; } else { echo "/$p2和/$p1不指向一个对象"; } ?>
相关文章推荐
- PHP类实例教程(二):类和对象的基础部分
- PHP类实例教程(十四):设计模式之单件模式
- jquery使用jquery.zclip插件复制对象的实例教程
- PHP入门教程之面向对象基本概念实例分析
- php mysqli数据库面向过程,面向对象实例比较
- 斯坦福大学公开课:iPhone开发教程2010年冬> 各种基础的类,功能,对象和实例的介绍
- java 学习实例,实现空对象,和重写了,Comparator 的类实现了对于容器的比较!
- PHP类实例教程(十五):final类、final方法和常量
- gson java对象与json转换(实例代码说明及教程)
- 实例解释比较详细的杰奇小说采集规则编写教程
- XAML实例教程系列 - 对象和属性(二)
- javascript 对象入门实例教程
- GSON实现Java对象的JSON序列化与反序列化的实例教程
- PHP类实例教程(八):类的继承
- PHP类实例教程(十六):PHP5中的常量
- PHP类实例教程(二十):PHP类接口的实现接口
- CSS标签切换代码实例教程 比较漂亮
- javascript实例教程(5) 利用javascript创建对象
- More Effective C# 第21条、第22条 实例代码解析(可比较 可排序 自定义对象集合完整演示) IEquatable, IComparable,IEnumerable
- 获得一个类实例的Class对象的三种方法,与Class对象的相互比较