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;                

 

转载于:https://www.cnblogs.com/hf8051/p/4648169.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值