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 相关文章推荐
php 异常处理实现代码
Mar 10 PHP
mysql 性能的检查和优化方法
Jun 21 PHP
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
php共享内存段示例分享
Jan 20 PHP
PHP闭包实例解析
Sep 08 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
PHP实现批量删除(封装)
Apr 28 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 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
session 的生命周期是多长
2006/10/09 PHP
PHP循环获取GET和POST值的代码
2008/04/09 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
javascript fullscreen全屏实现代码
2009/04/09 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
js实现div色块碰撞
2020/01/16 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python实现简单的HttpServer服务器示例
2017/09/25 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
web页面录屏实现
2019/02/12 HTML / CSS
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
优秀村官事迹材料
2014/01/10 职场文书
教学大赛获奖感言
2014/01/15 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书