PHP数组式访问接口ArrayAccess用法分析
本文实例讲述了PHP数组式访问接口ArrayAccess用法。分享给大家供大家参考,具体如下:
PHP ArrayAccess接口又叫数组式访问接口,该接口的作用是提供像访问数组一样访问对象的能力。
接口摘要如下:
ArrayAccess{ //获取一个偏移位置的值 abstractpublicmixedoffsetGet(mixed$offset) //设置一个偏移位置的值 abstractpublicvoidoffsetSet(mixed$offset,mixed$value) //检查一个偏移位置是否存在 abstractpublicbooleanoffsetExists(mixed$offset) //复位一个偏移位置的值 abstractpublicvoidoffsetUnset(mixed$offset) }
例子说明:
data[$key]; } /** *以对象方式添加一个数组元素 * *@accesspublic *@paramstring数组元素键名 *@parammixed数组元素值 *@returnmixed */ publicfunction__set($key,$value){ $this->data[$key]=$value; } /** *以对象方式判断数组元素是否设置 * *@accesspublic *@param数组元素键名 *@returnboolean */ publicfunction__isset($key){ returnisset($this->data[$key]); } /** *以对象方式删除一个数组元素 * *@accesspublic *@param数组元素键名 */ publicfunction__unset($key){ unset($this->data[$key]); } /** *以数组方式向data数组添加一个元素 * *@accesspublic *@abstractingArrayAccess *@paramstring偏移位置 *@parammixed元素值 */ publicfunctionoffsetSet($offset,$value){ if(is_null($offset)){ $this->data[]=$value; }else{ $this->data[$offset]=$value; } } /** *以数组方式获取data数组指定位置元素 * *@accesspublic *@abstractingArrayAccess *@param偏移位置 *@returnmixed */ publicfunctionoffsetGet($offset){ return$this->offsetExists($offset)?$this->data[$offset]:null; } /** *以数组方式判断偏移位置元素是否设置 * *@accesspublic *@abstractingArrayAccess *@param偏移位置 *@returnboolean */ publicfunctionoffsetExists($offset){ returnisset($this->data[$offset]); } /** *以数组方式删除data数组指定位置元素 * *@accesspublic *@abstractingArrayAccess *@param偏移位置 */ publicfunctionoffsetUnset($offset){ if($this->offsetExists($offset)){ unset($this->data[$offset]); } } } $animal=newArrayAndObjectAccess(); $animal->dog='dog';//调用ArrayAndObjectAccess::__set $animal['pig']='pig';//调用ArrayAndObjectAccess::offsetSet var_dump(isset($animal->dog));//调用ArrayAndObjectAccess::__isset var_dump(isset($animal['pig']));//调用ArrayAndObjectAccess::offsetExists var_dump($animal->pig);//调用ArrayAndObjectAccess::__get var_dump($animal['dog']);//调用ArrayAndObjectAccess::offsetGet unset($animal['dog']);//调用ArrayAndObjectAccess::offsetUnset unset($animal->pig);//调用ArrayAndObjectAccess::__unset var_dump($animal['pig']);//调用ArrayAndObjectAccess::offsetGet var_dump($animal->dog);//调用ArrayAndObjectAccess::__get ?>
以上输出:
booleantrue booleantrue string'pig'(length=3) string'dog'(length=3) null null
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。