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;                
  • 相关阅读:
    Active Report 3 生成图表
    js asp.net enable/disable validator
    [.net] 如何在mail的加入正文显示图片
    [javascript] 得到 javascript 的当前文件名
    Colorful Stones
    Jam的计数法

    Beautiful Matrix
    能量项链
    Maxim and Discounts
  • 原文地址:https://www.cnblogs.com/hf8051/p/4648169.html
Copyright © 2011-2022 走看看