数组式方式访问对象(ArrayAccess)
来源:互联网 发布:mac qq远程控制在哪 编辑:程序博客网 时间:2024/06/07 04:45
ArrayAccess简介:提供像访问数组一样访问对象的能力的接口。
//接口摘要:↓ArrayAccess { /* 方法 */ abstract public boolean offsetExists ( mixed $offset ) abstract public mixed offsetGet ( mixed $offset ) abstract public void offsetSet ( mixed $offset , mixed $value ) abstract public void offsetUnset ( mixed $offset )}
/** * Class Foo 使用数组语法访问对象 * 用数组的语法来读写数据,使用SPL的ArrayAccess接口。 * * offsetExists (指定一个元素是否已定义) * offsetGet (获取一个元素的值) * offsetSet (将元素设置为一个新值) * offsetUnset (删除一个元素及值) * */class Foo implements ArrayAccess{ protected $arrays = array(); public function __construct($arr) { // 初始化数组 $this->arrays = $arr; } // isset元素时触发该方法 public function offsetExists($offset) { return isset($this->arrays[$offset]); } // 获取一个数组元素时触发 public function offsetGet($offset) { return $this->arrays[$offset]; } // 设置一个数组元素时触发 public function offsetSet($offset, $value) { if(is_null($offset)) { $this->arrays[] = $value; }else{ $this->arrays[$offset] = $value; } } // unset一个数组元素时触发 public function offsetUnset($offset) { unset($this->arrays[$offset]); }}
$arr = array('张三','李四','王五');$Foo = new Foo($arr); // 初始化并传递数组isset($Foo[1]); // 检测数组元素是否否在 自动调用offsetExistsecho $Foo[1]; // 获取数组元素 自动调用offsetGet$Foo[] = 'new element'; // 新增数组元素 自动调用offsetSetunset($Foo[1]); // 删除数组元素 自动调用offsetUnset
相关文档:
http://php.net/manual/zh/class.arrayaccess.php
http://moell.cn/article/29
阅读全文
0 0
- 数组式方式访问对象(ArrayAccess)
- PHP ArrayAccess(数组式访问)接口
- PHP类数组式访问(ArrayAccess接口)
- ArrayAccess(数组式访问)接口,你有一个对象,但是你希望能将其看作一个数组
- PHP数组式访问接口 ArrayAccess
- php数组式访问借口ArrayAccess
- php如何使得你的对象可以像数组一样可以被访问(ArrayAccess 的作用)?
- 1.PHP 预定义接口 --- ArrayAccess(数组式访问)接口
- 【php语法】实现ArrayAccess接口,以数组的形式访问对象
- PHP的ArrayAccess接口 像数组一样来访问你的PHP对象
- PHP的ArrayAccess接口 像数组一样来访问你的PHP对象
- PHP实现对象属性按数组方式访问
- PHP实现数组按数组方式访问和对象方式操作
- 数组访问方式
- 对象的访问方式
- XPath方式访问JavaBean对象
- java的对象访问方式
- JVM中对象访问方式
- POJ3579-Median
- linux系统下动静态库的制作
- Spark源码学习笔记8-TaskScheduler
- 网站实施--头部导航 样式的控制
- Windows交互服务
- 数组式方式访问对象(ArrayAccess)
- UNP-第六章 I/O复用 select 和poll函数 学习笔记
- [转载][Python]selenium之 chromedriver与chrome版本映射表(更新至v2.29)
- 如何解决构建maven项目时速度很慢的问题
- VIM命令大全
- opencv两种图像格式IplImage和Mat的透视变换
- 如何在AndroidStudio中导出Jar包,并且自定义Exclude文件
- Window7上部署Django项目
- 20170517_C风格字符串的处理函数的自定义