php arrayaccess什么作用,简单介绍PHP语言中的ArrayAccess接口

在 php5 中多了一系列新接口。在 HaoHappy 翻译的你可以了解到他们的应用。同时这些接口和一些实现的 Class 被归为 Standard PHP Library(SPL)。在 PHP5 中加入了很多特性,使类的重载 (Overloading) 得到进一步的加强。ArrayAccess 的作用是使你的 Class 看起来像一个数组(PHP 的数组)。这点和 C# 的 Index 特性很相似。

601e1806e6601930a04ca6718c617b79.png

下面是 ArrayAccess 的定义:

interface ArrayAccess

boolean offsetExists($index)

mixed offsetGet($index)

void offsetSet($index, $newvalue)

void offsetUnset($index)

由于PHP的数组的强大,很多人在写 PHP 应用的时候经常将配置信息保存在一个数组里。于是可能在代码中到处都是 global。我们换种方式?

class Configuration implements ArrayAccess {

static private $config;

private $configarray;

private function __construct() {

// init

$this->configarray = array("Binzy" => "Male", "Jasmin" => "Female");

}

public static function instance() {

//

if (self::$config == null) {

self::$config = new Configuration();

}

return self::$config;

}

//检查一个偏移位置是否存在

function offsetExists($index) {

return isset($this->configarray[$index]);

}

//获取一个偏移位置的值

function offsetGet($index) {

return $this->configarray[$index];

}

//设置一个偏移位置的值

function offsetSet($index, $newvalue) {

$this->configarray[$index] = $newvalue;

}

//复位一个偏移位置的值

function offsetUnset($index) {

unset($this->configarray[$index]);

}

}

$config = Configuration::instance();

print_r($config);

echo "

";

echo $config['Binzy'];

echo "

";

$config['Binzy'] = '1222';

echo $config['Binzy'];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值