PHP比较对象

2023年11月24日13:58:14

介绍

PHP具有比较运算符 ==,使用该运算符可以对两个objecs变量进行简单的比较。如果两者都属于同一类并且对应属性的值相同,则返回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\n";
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\n";
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\n";
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)

  • 更新时间:2023年11月24日13:58:14 ,共 1218 字。