<?php
class my_class
{
public $var1;
public $var2;
public $var3;
private $data;
public function __construct()
{
$this->data = new stdClass;
$this->data->var1 = 'a';
$this->data->var2 = 'b';
$this->data->var3 = 'c';
$this->assignReferences();
}
public function __clone()
{
$this->assignReferences();
}
private function assignReferences()
{
$this->var1 = &$this->data->var1;
$this->var2 = &$this->data->var2;
$this->var3 = &$this->data->var3;
}
}
$original = new my_class;
$new = clone $original;
$new->var3 = 'd';
echo $original->var3; // Output Should Be "c"
PD9waHAKCmNsYXNzIG15X2NsYXNzCnsKICAgIHB1YmxpYyAkdmFyMTsKCiAgICBwdWJsaWMgJHZhcjI7CgogICAgcHVibGljICR2YXIzOwoKCXByaXZhdGUgJGRhdGE7CgkKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCgl7CgkgICAgJHRoaXMtPmRhdGEgPSBuZXcgc3RkQ2xhc3M7CgkgICAgJHRoaXMtPmRhdGEtPnZhcjEgPSAnYSc7CgkgICAgJHRoaXMtPmRhdGEtPnZhcjIgPSAnYic7CgkgICAgJHRoaXMtPmRhdGEtPnZhcjMgPSAnYyc7CgkgICAgJHRoaXMtPmFzc2lnblJlZmVyZW5jZXMoKTsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIF9fY2xvbmUoKQoJewoJICAgICR0aGlzLT5kYXRhID0gdW5zZXJpYWxpemUoc2VyaWFsaXplKCR0aGlzLT5kYXRhKSk7CgkgICAgJHRoaXMtPmFzc2lnblJlZmVyZW5jZXMoKTsKCX0KCQoJcHJpdmF0ZSBmdW5jdGlvbiBhc3NpZ25SZWZlcmVuY2VzKCkKCXsKCSAgICAkdGhpcy0+dmFyMSA9ICYkdGhpcy0+ZGF0YS0+dmFyMTsKCSAgICAkdGhpcy0+dmFyMiA9ICYkdGhpcy0+ZGF0YS0+dmFyMjsKCSAgICAkdGhpcy0+dmFyMyA9ICYkdGhpcy0+ZGF0YS0+dmFyMzsgICAgICAgIAoJfQp9Cgokb3JpZ2luYWwgPSBuZXcgbXlfY2xhc3M7CiRuZXcgPSBjbG9uZSAkb3JpZ2luYWw7CiRuZXctPnZhcjMgPSAnZCc7IAoKZWNobyAkb3JpZ2luYWwtPnZhcjM7IC8vIE91dHB1dCBTaG91bGQgQmUgImMi