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

yipeiwu_com6年前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 图片加水印与上传图片加水印php类

一个正规的网站,在需要上传图片时,往往都会需要在图片上增加自己网站的LOGO水印。那么如何实现这一步骤呢?首先让我们来了解PHP图片加水印的原理。 通过判断文件类型建立图形,然后把其复制...

PHP mail()函数使用及配置方法

配置 工欲善其事,必先利其器。首先我们以windows下面为例进行说明,如何配置一下本地的mail。 下载附件 sendmail.zip -解压到任意路径,修改sendmail...

PHP实现的AES双向加密解密功能示例【128位】

本文实例讲述了PHP实现的AES双向加密解密功能。分享给大家供大家参考,具体如下: <?php /* * Created on 2018-9-1 * * To c...

PHP sleep()函数, usleep()函数

PHP sleep() 函数 定义和用法 sleep() 函数延迟代码执行若干秒。 语法sleep(seconds) seconds 必需。以秒计的暂停时间。 返回值 若成功,返回 0...

php使用递归函数实现数字累加的方法

本文实例讲述了php使用递归函数实现数字累加的方法。分享给大家供大家参考。具体实现方法如下: <?php function summation ($count) {...