]> granicus.if.org Git - php/commitdiff
Add new test
authorMarcus Boerger <helly@php.net>
Wed, 17 Dec 2003 22:14:59 +0000 (22:14 +0000)
committerMarcus Boerger <helly@php.net>
Wed, 17 Dec 2003 22:14:59 +0000 (22:14 +0000)
tests/classes/array_access_005.phpt [new file with mode: 0755]

diff --git a/tests/classes/array_access_005.phpt b/tests/classes/array_access_005.phpt
new file mode 100755 (executable)
index 0000000..057d120
--- /dev/null
@@ -0,0 +1,58 @@
+--TEST--
+ZE2 ArrayAccess and sub Arrays
+--FILE--
+<?php 
+
+class Peoples implements ArrayAccess {
+       public $person;
+       
+       function __construct() {
+               $this->person = array(array('name'=>'Joe'));
+       }
+
+       function offsetExists($index) {
+               return array_key_exists($this->person, $index);
+       }
+
+       function offsetGet($index) {
+               return $this->person[$index];
+       }
+
+       function offsetSet($index, $value) {
+               $this->person[$index] = $value;
+       }
+
+       function offsetUnset($index) {
+               unset($this->person[$index]);
+       }
+}
+
+$people = new Peoples;
+
+var_dump($people->person[0]['name']);
+$people->person[0]['name'] = $people->person[0]['name'] . 'Foo';
+var_dump($people->person[0]['name']);
+$people->person[0]['name'] .= 'Bar';
+var_dump($people->person[0]['name']);
+
+echo "---ArrayOverloading---\n";
+
+$people = new Peoples;
+
+var_dump($people[0]['name']);
+$people[0]['name'] = $people->person[0]['name'] . 'Foo';
+var_dump($people[0]['name']);
+$people[0]['name'] .= 'Bar';
+var_dump($people[0]['name']);
+
+echo "---Done---\n";
+?>
+--EXPECT--
+string(3) "Joe"
+string(3) "JoeFoo"
+string(3) "JoeFooBar"
+---ArrayOverloading---
+string(3) "Joe"
+string(3) "JoeFoo"
+string(3) "JoeFooBar"
+---Done---