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的urlencode()URL编码函数浅析
Aug 09 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
php获取文章上一页与下一页的方法
Dec 01 PHP
Web程序工作原理详解
Dec 25 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
php开发工具有哪五款
Nov 09 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
PHP数字金额转换成中文大写显示
Jan 05 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
支付宝接口开发集成支付环境小结
2015/03/17 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
javascript 随机展示头像实现代码
2011/12/06 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
vue文件运行的方法教学
2019/02/12 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
怎么使用pipenv管理你的python项目
2018/03/12 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
django rest framework 过滤时间操作
2020/07/12 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
总经理职责
2013/12/22 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
雷锋的故事观后感
2015/06/10 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
Python实现简繁体转换
2021/06/07 Python
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
Java 关于String字符串原理上的问题
2022/04/07 Java/Android