【问题标题】:How can you modify the copy of an object during a clone operation?如何在克隆操作期间修改对象的副本?
【发布时间】:2010-06-22 23:56:35
【问题描述】:

如何在克隆操作期间修改对象的副本?

【问题讨论】:

  • 对象是从您创建的类创建的,还是从您无法修改的类或子类创建的对象?

标签: php clone


【解决方案1】:

【讨论】:

    【解决方案2】:
    class MyClass {
    
        private $myArray = array();
    
        public function pushSomethingToArray($var) {
            array_push($this->myArray, $var);
        }   //  function pushSomethingToArray()
    
        public function getArray() {
            return $this->myArray;
        }   //  function getArray()
    
        public function __clone()
        {
            //  clear array
            $this->myArray = array();
        }   //  function __clone()
    }
    
    $myObj = new MyClass();
    $myObj->pushSomethingToArray('blue');
    $myObj->pushSomethingToArray('orange');
    
    $myObjClone = clone $myObj;
    $myObjClone->pushSomethingToArray('red');
    
    var_dump($myObj->getArray());
    echo '<br />';
    var_dump($myObjClone->getArray());
    

    【讨论】:

      【解决方案3】:
      $clone = clone $object;
      modify($clone);
      

      虽然是这样,但这是克隆操作之后;我不知道如何在操作期间(如果可能的话)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-09
        • 1970-01-01
        • 2017-01-18
        • 1970-01-01
        • 1970-01-01
        • 2011-05-08
        • 1970-01-01
        • 2013-03-27
        相关资源
        最近更新 更多