/**
* description 获取class中的私有变量
* author chuan
* @param null $class
* @param string $name
* @return mixed
*/
function getProtectedValue($class = null, $name = '')
{
try{
$object = new ReflectionObject($class);
$prop = $object->getProperty($name);
$prop->setAccessible(true);
return $prop->getValue($class);
}catch (Exception $e){
return false;
}
}
/**
* description 设置class中的私有变量
* author chuan
* @param null $class
* @param string $name
* @param string $value
*/
function setProtectedValue(&$class = null, $name = '', $value = '')
{
try{
$object = new ReflectionObject($class);
$prop = $object->getProperty($name);
$prop->setAccessible(true);
$prop->setValue($class, $value);
}catch (Exception $e){}
}
/**
* description 数组转数据对象
* author chuan
* @param array $array
* @param null $dtoClass
* @return null
*/
function arrayToDTO($array = [], $dtoClass = null)
{
foreach ($array as $index => $value){
$argValue = getProtectedValue($dtoClass, $index);
if ($argValue !== false){
setProtectedValue($dtoClass, $index, $value);
}
}
return $dtoClass;
}