<?php 
 
include_once __DIR__ . '/../src/ObjectCopier.php'; 
 
 
use BABA\Utils\ObjectCopier; 
 
/** 
 * Class A 
 */ 
class A 
{ 
    private $private; 
    public $public; 
    protected $protected; 
 
    /** 
     * A constructor. 
     * @param $private 
     * @param $public 
     * @param $protected 
     */ 
    public function __construct($private, $public, $protected) 
    { 
        $this->private = $private; 
        $this->public = $public; 
        $this->protected = $protected; 
    } 
 
    /** 
     * @return mixed 
     */ 
    public function getPrivate() 
    { 
        return $this->private; 
    } 
 
    /** 
     * @param mixed $private 
     */ 
    public function setPrivate($private) 
    { 
        $this->private = $private; 
    } 
 
    /** 
     * @return mixed 
     */ 
    public function getPublic() 
    { 
        return $this->public; 
    } 
 
    /** 
     * @param mixed $public 
     */ 
    public function setPublic($public) 
    { 
        $this->public = $public; 
    } 
 
    /** 
     * @return mixed 
     */ 
    public function getProtected() 
    { 
        return $this->protected; 
    } 
 
    /** 
     * @param mixed $protected 
     */ 
    public function setProtected($protected) 
    { 
        $this->protected = $protected; 
    } 
 
} 
 
$a = new A('private', 'public', 'protected'); 
$b = new A('', '', ''); 
 
ObjectCopier::copyProperties($a, $b); 
 
var_dump($a); 
var_dump($b); 
 
$a = new A('private', 'public', 'protected'); 
$b = new A('', '', ''); 
 
ObjectCopier::copyProperties($a, $b, array('private')); 
 
var_dump($a); 
var_dump($b); 
 
$a = new A('private', 'public', 'protected'); 
$b = new A('', '', ''); 
 
ObjectCopier::copyPropertiesMap($a, $b, array('private' => 'public')); 
 
var_dump($a); 
var_dump($b);
 
 |