分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

PHP对象的比较

发布时间:2023-09-06 01:31责任编辑:彭小芳关键词:PHP
对象比较:

相等:当使用比较运算符(==)比较两个对象变量时,比较的原则是:
    1.如果两个对象的属性和属性值 都相等,
    2.而且两个对象是同一个类的实例(instance of),那么这两个对象变量相等。
   
全等:而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象,说明对象标志符都完全一样)。
class Sheep{    public $name;    protected $food;    public function __construct(string $name, string $food)    {        $this->name = $name;        $this->food = $food;    }    public function __toString()    {        return serialize($this);    }    public function __clone()    {        echo '对象被克隆' . PHP_EOL;    }}$sheep1 = new Sheep('喜洋洋', '肉');//PHP Recoverable fatal error:  Object of class Sheep could not be converted to stringecho $sheep1;/** * * * 相等:当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等, *      而且两个对象是同一个类的实例,那么这两个对象变量相等。 * *  全等:而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象)。 * */$sheep1 = new Sheep('喜洋洋', '肉');$sheep2 = new Sheep('喜洋洋', '肉');$sheep3 = clone $sheep1;//分析:三个对象都是Sheep类的实例,且对象的属性和值都完全一样if ($sheep1 == $sheep2 && $sheep2 == $sheep3) {    echo '$sheep1 == $sheep2 == $sheep3' . PHP_EOL;}$sheep4 = $sheep1; //对象的引用传递(传递的是对象标识符)if ($sheep4 === $sheep1) {    echo '$sheep4 === $sheep1' . PHP_EOL;}


PHP对象的比较

原文地址:http://blog.51cto.com/phpme/2051559

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved