zoukankan      html  css  js  c++  java
  • php -- 魔术方法 之 对象克隆 : __clone()

    产生对象的方法:

       1、从类产生对象。new,通过new去堆区开辟一块内存空间

       2、从对象产生对象。clone,通过关键字clone,将一个对象完整的复制一份,新开辟一块内存空间,将复制的结果存放到该内存里面

    语法:新对象(变量) = clone 老对象(变量)

    对象克隆:__clone()

    当一个对象被clone的时候,被克隆的对象会自动调用__clone()方法,克隆方法不走构造方法

    <?php
    
        //对象克隆
        class Person{
            //属性
            public $name;
            private $age;
    
            //静态属性
            public static $counts = 0;
    
            //方法
            public function __construct($name,$age){
                $this->name = $name;
                $this->age  = $age;
    
                //计数
                self::$counts++;
            }
    
            public function setAge($age){
                $this->age = $age;
            }
    
            public function getAge(){
                return $this->age;
            }
    
            //克隆魔术方法
            public function __clone(){
                //计数
                self::$counts++;
    
                //使用对象
                var_dump($this);
            }
        }
        echo '<pre>';
    
        //实例化
        $person = new Person('周芷若',15);
        var_dump($person);
    
        //克隆对象
        $person1 = clone $person;
        var_dump($person1);
    
        //修改对象
        $person1->name = '张无忌';
        var_dump($person1);
    
        //输出对象
        echo Person::$counts;                
  • 相关阅读:
    通信中的相干与非相干
    OFDM为什么要在频域内插后做fftshift
    OFDM为什么把高频子载波作为保护频带
    辛几何
    奇文共欣赏
    6G新技术
    高扇出导致的系统异常解决方法

    线程与守护线程
    进程之间的通行
  • 原文地址:https://www.cnblogs.com/hf8051/p/4648169.html
Copyright © 2011-2022 走看看