zoukankan      html  css  js  c++  java
  • PHP

    <?php
    /**
     * 此例子解释什么是深克隆。
     * 克隆学生类。
     */
    class Student {
    
    	public $name = '张三';
    	public $age  = 12;
    
    	//所属老师
    	public $teacher;
    
    	//构造方法
    	public function __construct( $name , Teacher $teacher) {
    		$this->name = $name;
    		$this->teacher = $teacher;
    	}
    
    	// 克隆方法
    	// 对新对象,进行一系列的初始化操作,比如将原来的年龄改为2,将老师对象,更新为新的老师对象。
    	// 操作的不是原始对象,而是复制出的新对象
    	public function __clone() {
    		$this->age = 2;
    
    		//复制原有的老师对象,给予新的学生对象中的老师对象。
    		$this->teacher = clone $this->teacher;
    	}
    }
    
    class Teacher {
    	public $teacherName = '张老师';
    }
    
    // 实例化学生类
    $stu = new Student('张三', new Teacher());
    
    // 复制一个学生类
    $stu_back = clone $stu;
    
    
    // 复制过后,将原学生类中的张老师更改为王老师
    $stu->teacher->teacherName = '王老师';
    
    // 打印对象 
    var_dump($stu);
    
    echo '<br>';
    
    var_dump($stu_back);

    结果:

  • 相关阅读:
    T-SQL查询语句
    数据库和表的管理
    数据库概念
    IRF2实验
    IFR2笔记
    校园网双网出口实验案例
    双机热备实验
    华为H3C(NAT)实验
    BGP(边界网关协议)实验
    Hybrid实验
  • 原文地址:https://www.cnblogs.com/KTblog/p/5245131.html
Copyright © 2011-2022 走看看