the use of all abstract methods declared in the interfaces Iterator
and IteratorAggregate respectively.
+ * Array overloading
+
+ Objects can be used with Array notation when they implement the
+ interface ArrayAccess. You cannot use such objects in standard
+ array functions, however you have full control over the array
+ notation. This allows lazy initialization or read only array.
+
+ Note that setting [] results in a call to offsetSet() with
+ index being NULL. That means that as with standard arrays you
+ cannot store NULL keys.
+
+ Example:
+
+ <?php
+ class ArrayClass implements ArrayAccess {
+ public $a = array();
+
+ function offsetExists($index) {
+ return array_key_exists($index, $this->a);
+ }
+ function offsetGet($index) {
+ return $this->a[$index];
+ }
+ function offsetSet($index, $newval) {
+ return $this->a[$index] = $newval;
+ }
+ function offsetUnset($index) {
+ unset($this->a[$index]);
+ }
+ }
+
+ $obj = new ArrayClass;
+
+ $obj[0] = 'bla'; // calls offsetSet(0,'bla')
+ $obj[] = 42; // calls offsetSet(NULL, 42)
+ $x = $obj[0]; // calls offsetGet(0)
+ $b = isset($obj[0]); // calls offsetExists(0)
+ unset($obj[0]); // calls offsetUnset(0)
+ ?>
+
+
* __METHOD__
The pseudo constant __METHOD__ shows the current class and method