PHP 比较对象


简介

PHP 有一个比较运算符 ==,可用该运算符执行两个对象变量的简单比较。如果两个变量属于同一类别,并且对应属性的值也相同,则该运算符将返回 true。

PHP 的 === 运算符比较两个对象变量,并且只有当它们引用同一类别的同一个实例时才返回 true

我们使用以下两个类别比较带有这些运算符的对象

实例

<?php
class test1{
   private $x;
   private $y;
   function __construct($arg1, $arg2){
      $this->x=$arg1;
      $this->y=$arg2;
   }
}
class test2{
   private $x;
   private $y;
   function __construct($arg1, $arg2){
      $this->x=$arg1;
      $this->y=$arg2;
   }
}
?>

同一类别中的两个对象

实例

$a=new test1(10,20);
$b=new test1(10,20);
echo "two objects of same class
"; echo "using == operator : "; var_dump($a==$b); echo "using === operator : "; var_dump($a===$b);

输出

two objects of same class
using == operator : bool(true)
using === operator : bool(false)

同一对象的两个引用

实例

$a=new test1(10,20);
$c=$a;
echo "two references of same object
"; echo "using == operator : "; var_dump($a==$c); echo "using === operator : "; var_dump($a===$c);

输出

two references of same object
using == operator : bool(true)
using === operator : bool(true)

两个不同类别中的对象

实例

$a=new test1(10,20);
$d=new test2(10,20);
echo "two objects of different classes
"; echo "using == operator : "; var_dump($a==$d); echo "using === operator : "; var_dump($a===$d);

输出

输出显示以下结果

two objects of different classes
using == operator : bool(false)
using === operator : bool(false)

更新于: 18-Sep-2020

3K+ 浏览量

职业起步

完成课程获得认证

开始
广告