php 数组 对象 转换
来源:互联网 发布:浙江灯具进出口数据 编辑:程序博客网 时间:2024/05/26 15:54
1.利用反射技术
class T
{public function objToArray()
{
$arry = array();
$isAllEmpty = true;
$class = new ReflectionClass(get_class($this));
foreach($class->getProperties() as $p) {
foreach($class->getMethods(ReflectionMethod::IS_PUBLIC) as $m) {
$mName = $m->getName();
if(0 === stripos($mName, 'get') && 0 === strcasecmp(substr($mName, 3), $p->getName())) {
$value = $class->getMethod($mName)->invoke($this);
if(!empty($value)) {
$isAllEmpty = false;
}
$arry[$p->getName()] = $value;
break;
}
}
}
if($isAllEmpty) {
$arry = null;
}
return $arry;
}
protected static function arrayToObj($arr, $className)
{
$obj = null;
if(is_array($arr)) {
$class = null;
try {
$class = new ReflectionClass($className);
} catch(Exception $e) {
throw $e;
}
if(!empty($class)) {
$obj = $class->newInstance();
foreach($arr as $key => $value) {
$find = false;
foreach($class->getProperties(ReflectionProperty::IS_PRIVATE) as $p) {
if(0 === strcasecmp($key, $p->getName())) {
foreach($class->getMethods(ReflectionMethod::IS_PUBLIC) as $m) {
$mName = $m->getName();
if(0 === stripos($mName, 'set') && 0 === strcasecmp(substr($mName, 3), $key)) {
$class->getMethod($mName)->invoke($obj, $value);
$find = true;
break;
}
}
break;
}
if($find) {
break;
}
}
}
}
}
return $obj;
}
}
0 0
- php 数组 对象 转换
- PHP 对象-数组转换
- php 对象转换为数组
- php数组和对象转换
- PHP对象与数组转换
- php中对象转换数组与数组转换对象实例
- php多层数组和对象的转换
- php简单对象与数组的转换
- PHP 对象转换为对应的数组
- php对象、数组间的转换
- php简单对象与数组的转换
- PHP数组和对象的相互转换
- PHP 对象、数组间的转换
- PHP对象和数组的相互转换
- PHP索引数组转换成json是数组,php关联数组转换成json是对象。
- php:php多层数组和对象的转换
- php对象数组转换为json格式数组,再转回object对象数组
- php中的数组与对象之间的转换
- 有关linux系统登录出现启动会话失败
- Longest Valid Parentheses
- matlab的功率谱计算
- jquery easyui 获取某一页签内的某一元素
- 世界为什么是五彩缤纷
- php 数组 对象 转换
- MyMFC(7-9)对话框 CMainFrame
- 电容基础知识
- Android中如何解析网页,获取网页中的元素内容
- 关于typedef的用法总结
- 线段相交 算法摘记
- Android 解决熄屏后传感器关闭问题_方法一:保持屏幕常亮
- MyMFC(7-9)对话框 CMyMFC2DialogView
- zoj 1914 Arctic Network(最小生成树))