Rumah > pembangunan bahagian belakang > tutorial php > php面向对象之对象比较用法详解

php面向对象之对象比较用法详解

巴扎黑
Lepaskan: 2023-03-07 14:16:01
asal
1769 orang telah melayarinya

通过克隆,我们可以明白$a = $b和$a = clone $b所表示的意思了。但是在实际应用中,我们还是需要判断两个对象之间的关系是克隆还是引用,这是可以使用比较运算符“==”和“===”。

运算符“==”和“===”

当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性个属性值都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等;

而如果使用全等运算符(===),这两个对象变量一定要指向某各类的同一个实例(即同一个对象)。

下面我们看个实例:

<?php
header("content-type:text/html;charset=utf-8");
class Dog{
public $type;
public $age;
function __construct($type,$age)
{
$this->type = $type;
$this->age = $age;
}
}
$dog1 = new Dog(&#39;二哈&#39;,&#39;2&#39;);
$dog2 = new Dog(&#39;二哈&#39;,&#39;2&#39;);
if($dog1 == $dog2){
echo &#39;<br/> $dog1 == $dog2&#39;;
}
if($dog1 === $dog2){
echo &#39;<br/>$dog1 === $dog2 &#39;;
}else{
echo &#39;<br/>他们不能全等&#39;;
}
echo &#39;<hr/>&#39;;
$dog3 = $dog1;
if($dog1 == $dog3){
echo &#39;<br/> $dog1 == $dog3&#39;;
}
if($dog1 === $dog3){
echo &#39;<br/>$dog1 === $dog3 &#39;;
}else{
echo &#39;<br/>他们不能全等&#39;;
}
Salin selepas log masuk

实例解析:

首先我们创建了一个狗类,在类中定义属性种类和年龄,创建构造函数。接着实例化两个一模一样类,$dog1和$dog2。然后把这两个实例化的类做比较。首先用比较运算符“==”。上面我们说到过这个符号的含义:当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性个属性值都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等。首先判断,$dog1和$dog2的属性和属性值都是相等的,其次他俩都是同一个类Dog的类的实例化结果,那么结果就是,$dog1==$dog2。但是接下来的判断$dog1===$dog2这个相等吗?我们看下运算符“===”成立的条件:而如果使用全等运算符(===),这两个对象变量一定要指向某各类的同一个实例(即同一个对象)。只有当运算符“===”两边比较的值是同一个对象的时候,才能成立。$dog1和$dog2是两个实例,不是同一个,所以他们“===”不能成立。我们给个条件,$dog3 = $dog1,用同样的方法去进行对象的比较和判断,看看是否成立。

大家可以讲上述的实例运行查看结果。

Atas ialah kandungan terperinci php面向对象之对象比较用法详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan