2023-08-30

PHP比较对象

PHP比较对象

简介

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";
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);
登录后复制

输出

Output shows following result

two objects of different classes
using == operator : bool(false)
using === operator : bool(false)
登录后复制

以上就是PHP比较对象的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/599960.html

发表回复

Your email address will not be published. Required fields are marked *