PHP实现数组按数组方式访问和对象方式操作
来源:互联网 发布:java多态的体现 编辑:程序博客网 时间:2024/05/17 07:12
方法一:
$data = array('x' => 'x', 'y' => 'y');
$t = new ArrayObject($data, ArrayObject::ARRAY_AS_PROPS);
以上为主要代码。下面为相关操作。
printf("数组方式访问(\$t['x'])输出:%s <br />", $t['x']);printf("对象方式访问(\$t->y)输出:%s <br />", $t->y);
//数组方式赋值,对象方式访问
$t['x1'] = 'x1';
printf("数组方式赋值%s <br />", "\$t['x1']='x1'");
printf("对象方式访问(\$t->x1)输出:%s <br />", $t->x1);
//对象方式赋值,数组方式访问
$t->y1 = 'y1';
printf("对象方式赋值%s <br />", "\$t->y1='y1'");
printf("数组方式访问(\$t['y1'])输出:%s <br />", $t['y1']);
方法二:构造一个类,实现ArrayAccess接口和__get,__set魔术方法
class Test implements ArrayAccess {
private $data = null;
public function __construct($data){
$this->data = $data;
}
public function offsetGet($offset){
return ($this->offsetExists($offset) ? $this->data[$offset] : null);
}
public function offsetSet($offset, $value){
$this->data[$offset] = $value;
}
public function offsetExists($offset){
return isset($this->data[$offset]);
}
public function offsetUnset($offset){
if($this->offsetExists($offset)){
unset($this->data[$offset]);
}
}
public function __get($offset){
return ($this->offsetExists($offset) ? $this->data[$offset] : null);
}
public function __set($offset, $value){
$this->data[$offset] = $value;
}
}
- PHP实现数组按数组方式访问和对象方式操作
- PHP实现对象属性按数组方式访问
- 数组式方式访问对象(ArrayAccess)
- 数组访问方式
- javascript的数组和对象定义方式
- php对象转成数组和数组转成对象操作
- FIFO实现:数组方式
- PHP: stdclass和数组转成对象操作
- 基于数组和链表两种方式实现栈
- 用数组和链表两种方式实现栈
- PHP中数组,字符串和对象的在方法中的引用方式
- php数组,数组相关操作及数组三种遍历方式
- php数组遍历常用方式
- PHP和Javascript访问数组和对象时的区别
- 更快的方式实现 PHP 数组去重
- 更快的方式实现PHP数组去重
- 更快的方式实现PHP数组去重(转)
- php二维数组排序的三种实现方式
- 灵云智能语音之语音合成(云端)SDK的使用
- 【Linux】生成SSH-KEY
- extern int 和extern const int的区别?
- 剪花布条
- POJ 1816 字典树+DFS
- PHP实现数组按数组方式访问和对象方式操作
- Android Volley完全解析(四),带你从源码的角度理解Volley
- 九个Console命令,让js调试更简单
- 从文件 I/O 看 Linux 的虚拟文件系统
- C# List<T> Add方法循环添加时只保存了最后一次的数据(覆盖问题)
- shell脚本中的grep命令参数使用方法介绍(转载)
- Surface手机不仅手写笔专利曝光,现在又带有这种黑科技
- PSO粒子群算法的python简单实现备忘录
- 手把手教你 基础 整合最优雅SSM框架:SpringMVC + Spring + MyBatis