summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-12-17 22:14:59 +0000
committerMarcus Boerger <helly@php.net>2003-12-17 22:14:59 +0000
commit73b895ca5f84626734090f4896ed2c7b3871667f (patch)
treee70df04c2b366a55d21a147cdac014198c33f836
parent1e8ed7889be9b00cb6d9b071529f17254ff31489 (diff)
downloadphp-git-73b895ca5f84626734090f4896ed2c7b3871667f.tar.gz
Add new test
-rwxr-xr-xtests/classes/array_access_005.phpt58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/classes/array_access_005.phpt b/tests/classes/array_access_005.phpt
new file mode 100755
index 0000000000..057d12049d
--- /dev/null
+++ b/tests/classes/array_access_005.phpt
@@ -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---