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

yipeiwu_com5年前PHP代码库
复制代码 代码如下:

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函数

1.产生随机字符串函数 function random($length) { $hash = @#@#; $chars = @#abcdefghijklmnopqrstuvwxyz012...

PHP基于GD库的图像处理方法小结

PHP基于GD库的图像处理方法小结

本文实例讲述了PHP基于GD库的图像处理方法。分享给大家供大家参考,具体如下: gd图像处理技术 extension=php_gd2.dll 创建画布 画布,一种资源型数据,可操作的图像...

PHP使用数组实现队列

PHP中将数组当做一个栈,主要是使用array_push()和array_pop()两个系统函数来完成。入栈主要是利用array_push()函数向第一个参数的数组尾部添加一个或多个元素...

php实现的发送带附件邮件类实例

本文实例讲述了php实现的发送带附件邮件类的方法,是一个非常实用的功能。分享给大家供大家参考。具体方法如下: emailclass.php类文件如下: <? clas...

PHP解耦的三重境界(浅谈服务容器)

阅读本文之前你需要掌握:PHP语法,面向对象 在完成整个软件项目开发的过程中,有时需要多人合作,有时也可以自己独立完成,不管是哪一种,随着代码量上升,写着写着就“失控”了,渐渐“丑陋接口...