加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中如何实现对象对比,方法是什么

发布时间:2023-06-02 13:41:42 所属栏目:PHP教程 来源:
导读:在这篇文章中我们来了解一下“PHP中如何实现对象比较,方法是什么”,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往
在这篇文章中我们来了解一下“PHP中如何实现对象比较,方法是什么”,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
 
PHP 5 中的对象比较要比 PHP 4 中复杂,所期望的结果更符合一个面向对象语言。
 
当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等。
 
而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象)。
 
通过下面的示例可以理解以上原则。
 
Example #1 PHP 5 的对象比较
 
<?php
 
function bool2str($bool)
 
{
 
    if ($bool === false) {
 
        return 'FALSE';
 
    } else {
 
        return 'TRUE';
 
    }
 
}
 
function compareObjects(&$o1, &$o2)
 
{
 
    echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "\n";
 
    echo 'o1 != o2 : ' . bool2str($o1 != $o2) . "\n";
 
    echo 'o1 === o2 : ' . bool2str($o1 === $o2) . "\n";
 
    echo 'o1 !== o2 : ' . bool2str($o1 !== $o2) . "\n";
 
}
 
class Flag
 
{
 
    public $flag;
 
    function Flag($flag = true) {
 
        $this->flag = $flag;
 
    }
 
}
 
class OtherFlag
 
{
 
    public $flag;
 
    function OtherFlag($flag = true) {
 
        $this->flag = $flag;
 
    }
 
}
 
$o = new Flag();
 
$p = new Flag();
 
$q = $o;
 
$r = new OtherFlag();
 
echo "Two instances of the same class\n";
 
compareObjects($o, $p);
 
echo "\nTwo references to the same instance\n";
 
compareObjects($o, $q);
 
echo "\nInstances of two different classes\n";
 
compareObjects($o, $r);
 
?>
 
以上例程会输出:
 
Two instances of the same class
 
o1 == o2 : TRUE
 
o1 != o2 : FALSE
 
o1 === o2 : FALSE
 
o1 !== o2 : TRUE
 
Two references to the same instance
 
o1 == o2 : TRUE
 
o1 != o2 : FALSE
 
o1 === o2 : TRUE
 
o1 !== o2 : FALSE
 
Instances of two different classes
 
o1 == o2 : FALSE
 
o1 != o2 : TRUE
 
o1 === o2 : FALSE
 
o1 !== o2 : TRUE
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!