PHP对象的比较

简介:
对象比较:

相等:当使用比较运算符(==)比较两个对象变量时,比较的原则是:
    1.如果两个对象的属性和属性值 都相等,
    2.而且两个对象是同一个类的实例(instance of),那么这两个对象变量相等。
   
全等:而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象,说明对象标志符都完全一样)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class  Sheep
{
     public  $name ;
     protected  $food ;
 
     public  function  __construct(string  $name , string  $food )
     {
         $this ->name =  $name ;
         $this ->food =  $food ;
     }
 
     public  function  __toString()
     {
         return  serialize( $this );
     }
 
     public  function  __clone()
     {
         echo  '对象被克隆'  . PHP_EOL;
     }
}
 
$sheep1  new  Sheep( '喜洋洋' '肉' ); //PHP Recoverable fatal error:  Object of class Sheep could not be converted to string
 
echo  $sheep1 ;
 
 
/**
  *
  *
  * 相等:当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等,
  *      而且两个对象是同一个类的实例,那么这两个对象变量相等。
  *
  *  全等:而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象)。
  *
  */
 
 
$sheep1  new  Sheep( '喜洋洋' '肉' );
$sheep2  new  Sheep( '喜洋洋' '肉' );
$sheep3  clone  $sheep1 ;
 
//分析:三个对象都是Sheep类的实例,且对象的属性和值都完全一样
 
 
if  ( $sheep1  ==  $sheep2  &&  $sheep2  ==  $sheep3 ) {
     echo  '$sheep1 == $sheep2 == $sheep3'  . PHP_EOL;
}
 
$sheep4  $sheep1 //对象的引用传递(传递的是对象标识符)
 
if  ( $sheep4  ===  $sheep1 ) {
     echo  '$sheep4 === $sheep1'  . PHP_EOL;
}









本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/2051559,如需转载请自行联系原作者
目录
相关文章
|
Java 程序员 PHP
PHP对象和类
PHP对象和类
182 0
|
缓存 安全 PHP
PHP中的魔术方法与对象序列化
本文将深入探讨PHP中的魔术方法,特别是与对象序列化和反序列化相关的__sleep()和__wakeup()方法。通过实例解析,帮助读者理解如何在实际应用中有效利用这些魔术方法,提高开发效率和代码质量。
|
SQL 安全 PHP
理解php对象注入
php对象注入是一个非常常见的漏洞,这个类型的漏洞虽然有些难以利用,但仍旧非常危险,为了理解这个漏洞,请读者具备基础的php知识。
|
PHP
PHP中的面向对象编程:理解类与对象
本文将深入探讨PHP中面向对象编程的核心概念——类与对象。通过实例讲解,帮助读者更好地理解如何在PHP中运用OOP编写更高效、可维护的代码。
201 9
PHP中如何比较两个对象
PHP中如何比较两个对象
186 7
|
SQL 关系型数据库 数据库连接
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
本文介绍了PHP中PDO(PHP Data Objects)扩展的基本概念和使用方法。内容包括PDO类和PDOStatement类的介绍,PDO的简单使用,预定义占位符的使用方法,以及PDOStatement对象的使用。文章还讨论了绑定预定义占位符参数的不同形式,即bindValue和bindParam的区别。通过具体示例,展示了如何使用PDO进行数据库连接、数据查询、数据插入等操作。
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
|
存储 JSON PHP
在 PHP 中从 URL 获取 JSON 对象
在 PHP 中从 URL 获取 JSON 对象
364 0
|
PHP 开发者
PHP中的面向对象编程:掌握类与对象的精髓
探索PHP的面向对象编程世界,本文将带你了解如何通过创建和操作类来实例化对象。我们将深入讲解类的声明、构造函数的使用以及继承和多态性的概念。准备好,让我们一起在代码的海洋中航行,揭开PHP对象编程的神秘面纱!
|
JSON 搜索推荐 大数据
Elasticsearch:从 ES|QL 到 PHP 对象
【6月更文挑战第9天】Elasticsearch 是一款强大的开源搜索引擎,适用于大数据处理和分析。在 PHP 开发中,使用 ES|QL 构建复杂查询后,通常需将查询结果转换为 PHP 对象。通过 `json_decode()` 函数解析 JSON 数据,可以实现这一目标。示例代码展示了如何将 Elasticsearch 响应转换为 PHP 对象并遍历数据。这样,我们可以进一步处理和操作数据,适应不同项目需求。随着技术和方法的更新,不断学习和适应将提升我们在开发中的效率和创新力。
269 10