好!欢迎访问迷津渡口 现在时间是:

迷津渡口

越感到迷惑 越接近真理

PHP类实现ArrayAccess接口

什么是SPL?

SPL是Standard PHP Library的缩写,属于PHP标准库的一支,是PHP5最新增加的功能,用来解决一些PHP语言本身不支持的问题以及实现更有效的数据的操作。

数组接口ArrayAccess--赋值、取值、删除、判断是否为空

数组的特性非常强大,如果对象可以使用数组的特性,将非常方便。

使用的方法类似于PHP5的魔术方法,对象通过定义相应的魔术方法可以实现一个数组接口,从而使用数组的特性。

需要定义的四种魔术方法:

boolean offsetExists($index)        //调用数组判断是否配置索引isset方法
mixed offsetGet($index)             //使用数组索引读取方法
void offsetSet($index, $newvalue)   //使用数组索引赋值方法
void offsetUnset($index)            //使用数组删除索引和值unset方法

使用例子:

<?php
/*
* 测试ArrayAccess接口
* echo __METHOD__."\n";调用时输出调用方法,方便跟踪
*
*/

class FakeArray implements ArrayAccess {
	private $elements;

	public function __construct() {
		echo __METHOD__."\n";
		$this->elements=array();
	}

	public function offsetExists($offset) {
		echo __METHOD__."\n";
		return isset($this->elements[$offset]);
	}

	public function offsetGet($offset) {
		echo __METHOD__."\n";
		return $this->elements[$offset];
	}

	public function offsetSet($offset,$value) {
		echo __METHOD__."\n";
		$this->elements[$offset]=$value;
	}

	public function offsetUnset($offset) {
		echo __METHOD__."\n";
		unset($this->elements[$offset]);
	}
}

//使用
$exam=new FakeArray;
$exam['a']='test';

if (isset($exam['a']) && $exam['a']=='test') {
	echo "\$exam['a'] is set as 'test' now.\n";
}

unset($exam['a']);

if (! isset($exam['a'])) {
	echo "\$exam['a'] is unset now.\n";
}
?>


点赞0
 标签: php ArrayAccess
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 恋恋风尘
  2. 恋恋风尘
  3. 恋恋风尘
  4. 恋恋风尘
  5. 恋恋风尘
  6. 恋恋风尘
  7. 恋恋风尘
  8. 恋恋风尘
  9. 恋恋风尘