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 相关文章推荐
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 PHP
PHP 中dirname(_file_)讲解
Mar 18 PHP
基于asp+ajax和数据库驱动的二级联动菜单
May 06 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
php对接java现实加签验签的实例
Nov 25 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Python3 读取Word文件方式
2020/02/13 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
社区活动邀请函范文
2014/01/29 职场文书
中学生班主任评语
2014/01/30 职场文书
某某同志考察材料
2014/05/28 职场文书
明星员工获奖感言
2014/08/14 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
讲文明倡议书
2015/04/29 职场文书
投诉信回复范文
2015/07/03 职场文书
爱国主义主题班会
2015/08/14 职场文书
网络研修随笔感言
2015/11/18 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
win10更新失败无限重启解决方法
2022/04/19 数码科技