php对象和数组相互转换的方法
本文实例讲述了php对象和数组相互转换的方法。分享给大家供大家参考。具体分析如下:
这里定义2个php匿名对象和数组相互转换的函数,代码如下:
function array2object($array) { if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key => $val){ $obj->$key = $val; } } else { $obj = $array; } return $obj; } function object2array($object) { if (is_object($object)) { foreach ($object as $key => $value) { $array[$key] = $value; } } else { $array = $object; } return $array; }
用法示例如下:
$array = array('foo' => 'bar','one' => 'two','three' => 'four'); $obj = array2object($array); print $obj->one; // output's "two" $arr = object2array($obj); print $arr['foo']; // output's bar
希望本文所述对大家的php程序设计有所帮助。
相关推荐
-
PHP对象相关知识总结
对象传递:一种说法是"PHP对象是通过引用传递的",更准确的说法是别名(标识符)传递,即它们都保存着同一个标识符(ID)的拷贝,这个标识符指向同一个对象的真正内容. <?php class A { public $foo = 1; } $a = new A; $b = $a; // $a ,$b都是同一个标识符的拷贝 // ($a) = ($b) = <id> $b->foo = 2; echo $a->foo."\n";//2 $c
-
php学习笔记 类的声明与对象实例化
复制代码 代码如下: <?php /* 类的声明 * 1.你要开发的是什么,确定写什么类 * 2.类中的成员一定要属于这个类 * [修饰类的关键字] class 类名{ * 成员属性: * 成员方法: * } * 3.在类中声明成员属性时,前面必须有修饰词,当不确定使用哪个词时,使用var或public * 一个文件只保存一个类,文件名中包含类名,文件:类名.class.php * 类名的写法: * 变量:aaaBbbCcc * 函数:aaaBbbCcc * 常量:AAABBBCCC * 类名:
-
PHP对象Object的概念 介绍
例如,员工管理应用程序可能包括一个EmPloyee 类.然后可以用这个类来创建和维护特定实例,比如Gonn和Sally. 根据预定义的类创建对象常称为类的实例化(class instantiation). 对象使用new关键字创建,如下: 复制代码 代码如下: $employee = new Employee(); 创建对象之后,这个刚实例化的对象就具有了类中定义的所有性质和行为. 如何实例化对象 面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,既然我们类会声明了,下一步就是实例化对
-
php中如何使对象可以像数组一样进行foreach循环
刚接触到题的时候,我也没有考虑到Iterator模式,试了几个一般想法,失败以后....就直接去翻看了foreach的源码实现,期望发现foreach处理对象的时候是否有什么特殊性,可以做为突破口. 跟踪了半天以后发现了核心逻辑中的一个奇怪的switch: 复制代码 代码如下: switch (zend_iterator_unwrap(array, &iter TSRMLS_CC)) { default: case ZEND_ITER_INVALID:
-
常用的php对象类型判断
<HTML> <HEAD> <TITLE>php常用的数值判断函数</TITLE> </HEAD> <BODY> <? //判断数组 $colors = array("red", "blue", "green"); if(is_array($colors)) { print("colors is an array"."<br>&
-
php基础知识:类与对象(3) 构造函数和析构函数
构造函数 PHP 5 允行开发者在一个类中定义一个方法作为构造函数.具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作. 注意: 如果子类中定义了构造函数则不会暗中调用其父类的构造函数.要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct().(??和其他语言明显不同??) 例10.8.使用新标准的构造函数 class BaseClass { function __construct() { prin
-
php初始化对象和析构函数的简单实例
复制代码 代码如下: <?php /********************************************** * __construct 对象初始化函数使用 * destruct 析构函数的使用 * $this 关键字的使用($this关键字是用来访问当前对象中的对象属性和对象 * 方法的系统变量) * **********************************************/ header("Con
-
php对象和数组相互转换的方法
本文实例讲述了php对象和数组相互转换的方法.分享给大家供大家参考.具体分析如下: 这里定义2个php匿名对象和数组相互转换的函数,代码如下: function array2object($array) { if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key => $val){ $obj->$key = $val; } } else { $obj = $array; } return $obj; } fu
-
js 转json格式的字符串为对象或数组(前后台)的方法
一.前台 // 转换成对象 var myObject = JSON.parse(_data); alert("对象:"+myObject.msg); // 转换成数组 var myobj = eval("["+_data+"]"); for (var i = 0; i < myobj.length; i++) { alert("数组:"+myobj[i].msg); } //把json格式的字符串转成JSON对象 var
-
php变量与数组相互转换的方法(extract与compact)
本文实例讲述了php变量与数组相互转换的方法.分享给大家供大家参考,具体如下: 在php中数组与变量相互转换我们可使用到extract或compact函数,这里就来给大家分析一下这两个函数的用法. compact 多个变量转数组 <?php //多个变量转数组 $name='jb51'; $email='jb51@jb51.net'; $info=compact('name','email');//传递变量名 print_r($info); /* Array ( [name] => jb51
-
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
继承是OO语言中的一个最为人津津乐道的概念. 许多OO语言都支持两种继承方式:接口继承和实现继承. 接口继承只继承方法签名,而实现继承则继承实际的方法. 如其所述,由于函数没有签名,在ECMAScript中无法实现接口继承. ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现的. 1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法. 2.有时候需要传递大量可选参数的情形时,一
-
python对象与json相互转换的方法
在网络通信中,json是一种常用的数据格式,对于python来讲,将类转化为json数据以及将json数据转化为对象是一件非常容易的事情. 下面给出两者转化的方法 # -*- coding: UTF-8 -*- import json #自定义类 class MyClass: #初始化 def __init__(self): self.a=2 self.b='bb' ########################## #创建MyClass对象 myClass=MyClass() #添加数据c
-
JS从非数组对象转数组的方法小结
前言 本文主要汇总了一些JS从非数组对象转数组的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. Array.prototype.slice.call(obj) 该方法可以将类数组对象转换为数组,所谓类数组对象,就是含 length 和索引属性的对象 返回的数组长度取决于对象 length 属性的值,且非索引属性的值,或索引大于 length 的值都不会被返回到数组中 实锤如下 let obj = { '0': 3, '1': 13, '2': 23, '3': 33, '
-
Java中List与数组相互转换实例分析
本文实例分析了Java中List与数组相互转换的方法.分享给大家供大家参考.具体如下: 今天写代码遇到一个奇怪的问题,具体代码不贴出了,写一个简化的版本.如下: ArrayList<String> list=new ArrayList<String>(); String strings[]=(String [])list.toArray(); 这样写代码个人觉得应该没什么问题,编译也没有问题.可是具体运行的时候报异常,如下:Exception in thread "mai
-
javascript中json对象json数组json字符串互转及取值方法
今天用到了json数组和json对象和json类型字符串之间互转及取值,记录一下: 1.json类型的字符串转换为json对象及取值 var jsonString = '{"bar":"property","baz":3}'; var jsObject = JSON.parse(jsonString); //转换为json对象 alert(jsObject.bar); //取json中的值 2.json对象转为json类型的字符串 var js
-
java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)
如下所示: package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.Date; import org.apache.commons.beanutils.BeanUtils; import com.mongodb.BasicDBObject; import com.mongodb.DBObje
-
JavaScript基于对象去除数组重复项的方法
本文实例讲述了JavaScript基于对象去除数组重复项的方法.分享给大家供大家参考,具体如下: JavaScript中,去除数组重复项是一个很常用的函数,而且在面试中也很经常被提问到.很多人在面对这个问题的时候,一般都是采用多层for循环来一步一步的比较,然后删除,那样不仅代码量很多,而且性能也很不好.在JavaScript的对象中,有一个特性就是key永远不重复,如果重复后面的就会覆盖前面的. 三个步骤: 1# 把数组转换成js对象 2# 把数组值变成js对象中的key 3# 把对象还原成数
随机推荐
- MyBatis 参数类型为String时常见问题及解决方法
- Oracle学习笔记(一)
- asp.net 存储过程调用
- python单线程实现多个定时器示例
- JavaScript学习笔记(十七)js 优化
- mysql批量更新多条记录的同一个字段为不同值的方法
- 纯js模拟div层弹性运动的方法
- Mybatis结果集自动映射的实例代码
- js获取元素的外链样式的简单实现方法
- Ruby中的数组和散列表的使用详解
- SQL临时表递归查询子信息并返回记录的代码
- Java虚拟机工作原理
- 无缝滚动js代码通俗易懂(自写)
- 详解Java利用ExecutorService实现同步执行大量线程
- Android开发之开发者头条(二)实现左滑菜单
- Android开发实例之登录界面的实现
- Java8之lambda最佳实践_动力节点Java学院整理
- C语言 数据结构之链表实现代码
- PHP中key和current,next的联合运用实例分析
- 网管必学之交换机VLAN的配置