PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象


Posted in PHP onOctober 12, 2010
interface ArrayAccess 
boolean offsetExists($index) 
mixed offsetGet($index) 
void offsetSet($index, $newvalue) 
void offsetUnset($index)

下面的例子展示了如何使用这个接口,例子并不是完整的,但是足够看懂,:->
<?php 
class UserToSocialSecurity implements ArrayAccess 
{ 
private $db;//一个包含着数据库访问方法的对象 
function offsetExists($name) 
{ 
return $this->db->userExists($name); 
} 
function offsetGet($name) 
{ 
return $this->db->getUserId($name); 
} 
function offsetSet($name, $id) 
{ 
$this->db->setUserId($name, $id); 
} 
function offsetUnset($name) 
{ 
$this->db->removeUser($name); 
} 
} 
$userMap = new UserToSocialSecurity(); 
print "John's ID number is " . $userMap['John']; 
?>

实际上,当 $userMap['John'] 查找被执行时,PHP 调用了 offsetGet() 方法,由这个方法再来调用数据库相关的 getUserId() 方法。
PHP 相关文章推荐
MVC模式的PHP实现
Oct 09 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
PHP遍历二维数组的代码
Apr 22 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
php微信公众平台开发类实例
Apr 01 PHP
PHP开发Apache服务器配置
Jul 15 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
php中去除所有js,html,css代码
Oct 12 #PHP
PHP入门学习笔记之一
Oct 12 #PHP
PHP 显示客户端IP与服务器IP的代码
Oct 12 #PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 #PHP
使用PHP 5.0创建图形的巧妙方法
Oct 12 #PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 #PHP
献给php初学者(入门学习经验谈)
Oct 12 #PHP
You might like
php获取淘宝分类id示例
2014/01/16 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
python查询sqlite数据表的方法
2015/05/08 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
python如何删除文件中重复的字段
2019/07/16 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
python递归函数用法详解
2020/10/26 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
枚举与#define宏的区别
2014/04/30 面试题
英语系本科生个人求职信
2013/09/21 职场文书
大专学生推荐信范文
2013/11/19 职场文书
超市采购员岗位职责
2014/02/01 职场文书
致800米运动员广播稿
2014/02/16 职场文书
进步之星获奖感言
2014/02/22 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
工作检讨书大全
2015/01/26 职场文书
公司酒会主持词
2015/07/02 职场文书
社区服务理念口号
2015/12/25 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL