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生成静态页面详解
Dec 05 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
Jul 09 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
Oct 01 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
解决php extension 加载顺序问题
Aug 16 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 PHP
PHP7新增函数
Mar 09 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和MySql中计算时间差的方法
2011/04/22 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
js中this用法实例详解
2015/05/05 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
js解决movebox移动问题
2016/03/29 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
2020/02/25 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
货代行业个人求职简历的自我评价
2013/10/22 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
协议书范文
2015/01/27 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL