PHP SPL ArrayAccess迭代器可数类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP SPL ArrayAccess迭代器可数类相关的知识,希望对你有一定的参考价值。

use an object as an array
  1. class array_test implements ArrayAccess, Iterator, Countable
  2. {
  3. private $container = array();
  4.  
  5. public function __construct() {}
  6.  
  7. /*
  8. * to use ArrayAccess
  9. */
  10. public function offsetSet($offset,$value)
  11. {
  12. if ($offset == "")
  13. {
  14. $this->container[] = $value;
  15. }
  16. else
  17. {
  18. $this->container[$offset] = $value;
  19. }
  20. }
  21.  
  22. /*
  23. * to use ArrayAccess
  24. */
  25. public function offsetExists($offset)
  26. {
  27. return isset($this->container[$offset]);
  28. }
  29.  
  30. /*
  31. * to use ArrayAccess
  32. */
  33. public function offsetUnset($offset)
  34. {
  35. unset($this->container[$offset]);
  36. }
  37.  
  38. /*
  39. * to use ArrayAccess
  40. */
  41. public function offsetGet($offset)
  42. {
  43. return isset($this->container[$offset]) ? $this->container[$offset] : null;
  44. }
  45.  
  46. /*
  47. * to use Iterator
  48. */
  49. public function rewind()
  50. {
  51. reset($this->container);
  52. }
  53.  
  54. /*
  55. * to use Iterator
  56. */
  57. public function current()
  58. {
  59. return current($this->container);
  60. }
  61.  
  62. /*
  63. * to use Iterator
  64. */
  65. public function key()
  66. {
  67. return key($this->container);
  68. }
  69.  
  70. /*
  71. * to use Iterator
  72. */
  73. public function next()
  74. {
  75. return next($this->container);
  76. }
  77.  
  78. /*
  79. * to use Iterator
  80. */
  81. public function valid()
  82. {
  83. return $this->current() !== false;
  84. }
  85.  
  86. /*
  87. * to use Countable
  88. */
  89. public function count()
  90. {
  91. return count($this->container);
  92. }
  93. }

以上是关于PHP SPL ArrayAccess迭代器可数类的主要内容,如果未能解决你的问题,请参考以下文章

php 迭代器与和生成器

PHP、SPL、ArrayAccess 接口

PHP标准库(SPL)- SplDoublyLinkedList类(双向链表)

PHP的SPL扩展库迭代器

php spl数据结构

PHP SPL使用方法 自动加载和迭代器