Pradeep
Pradeep

Reputation: 2507

Calling $this->__construct() while cloning

While cloning an object, I need to perform the same initializations that happen during the object construction.

Can I do this?

public class MyClass {

    protected $myVar;

    public function __construct()
    {
        $this->myVar = 0
    }

    public function __clone()
    {  
        $this->__construct();
    }
}

Upvotes: 0

Views: 804

Answers (1)

maček
maček

Reputation: 77788

You can do that just fine

class MyClass {

    protected $myVar;

    public function __construct()
    {
        echo "constructing!\n";
        $this->myVar = 0;
    }

    public function __clone()
    {
         echo "cloning!\n";
         $this->__construct();
    }
}

$a = new MyClass();

$b = clone $a;

Output

constructing!
cloning!
constructing!

Upvotes: 2

Related Questions