码迷,mamicode.com
首页 > Web开发 > 详细

php -- 魔术方法 之 对象克隆 : __clone()

时间:2015-07-15 14:55:54      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

产生对象的方法:

   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;                

 

php -- 魔术方法 之 对象克隆 : __clone()

标签:

原文地址:http://www.cnblogs.com/hf8051/p/4648169.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!