From f01c842ef660b793258926296de93694eaa4444f Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sun, 19 Jun 2005 20:49:17 +0000 Subject: [PATCH] - Update tests to reflect current situation # I don't feel like discussing this issue anymore - maybe we need to find # a way of returning proxies to get the requested behavior back - i'll give # it a try for PHP 5.2. So long we'll have to stay with the original # decision that we don't support references at all with ArrayAccess. --- tests/classes/array_access_003.phpt | 9 +++------ tests/classes/array_access_005.phpt | 28 +++++++++++++++++++++------- tests/classes/array_access_008.phpt | 11 ++++++----- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/tests/classes/array_access_003.phpt b/tests/classes/array_access_003.phpt index bed09b89e54..2d42665fc69 100644 --- a/tests/classes/array_access_003.phpt +++ b/tests/classes/array_access_003.phpt @@ -12,7 +12,7 @@ class object implements ArrayAccess { echo __METHOD__ . "($index)\n"; return array_key_exists($index, $this->a); } - function &offsetGet($index) { + function offsetGet($index) { echo __METHOD__ . "($index)\n"; switch($index) { case 1: @@ -48,12 +48,9 @@ var_dump($obj[2]); ===DONE=== --EXPECTF-- object::offsetGet(1) - -Strict Standards: Only variable references should be returned by reference in %sarray_access_003.php on line %d string(6) "fooBar" object::offsetGet(2) int(1) object::offsetGet(2) -object::offsetGet(2) -int(2) -===DONE=== + +Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference in %sarray_access_003.php on line %d diff --git a/tests/classes/array_access_005.phpt b/tests/classes/array_access_005.phpt index 5c6271d2576..f248f2172c8 100755 --- a/tests/classes/array_access_005.phpt +++ b/tests/classes/array_access_005.phpt @@ -14,7 +14,7 @@ class Peoples implements ArrayAccess { return array_key_exists($this->person, $index); } - function &offsetGet($index) { + function offsetGet($index) { return $this->person[$index]; } @@ -39,20 +39,34 @@ echo "---ArrayOverloading---\n"; $people = new Peoples; +var_dump($people[0]); var_dump($people[0]['name']); -$people[0]['name'] = $people->person[0]['name'] . 'Foo'; +var_dump($people->person[0]['name'] . 'Foo'); // impossible to assign this since we don't return references here +$x = $people[0]; // creates a copy +$x['name'] .= 'Foo'; +$people[0] = $x; +var_dump($people[0]); +$people[0]['name'] = 'JoeFoo'; var_dump($people[0]['name']); -$people[0]['name'] .= 'Bar'; +$people[0]['name'] = 'JoeFooBar'; var_dump($people[0]['name']); -echo "---Done---\n"; ?> ---EXPECT-- +===DONE=== +--EXPECTF-- string(3) "Joe" string(6) "JoeFoo" string(9) "JoeFooBar" ---ArrayOverloading--- +array(1) { + ["name"]=> + string(3) "Joe" +} string(3) "Joe" string(6) "JoeFoo" -string(9) "JoeFooBar" ----Done--- +array(1) { + ["name"]=> + string(6) "JoeFoo" +} + +Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference in %sarray_access_005.php on line %d diff --git a/tests/classes/array_access_008.phpt b/tests/classes/array_access_008.phpt index 84ecf08ba8a..01303882453 100755 --- a/tests/classes/array_access_008.phpt +++ b/tests/classes/array_access_008.phpt @@ -14,7 +14,7 @@ class Peoples implements ArrayAccess { return array_key_exists($this->person, $index); } - function & offsetGet($index) { + function offsetGet($index) { return $this->person[$index]; } @@ -39,6 +39,8 @@ echo "===ArrayOverloading===\n"; $people = new Peoples; +var_dump($people[0]['name']); +$people[0]['name'] = 'FooBar'; var_dump($people[0]['name']); $people[0]['name'] = $people->person[0]['name'] . 'Bar'; var_dump($people[0]['name']); @@ -47,12 +49,11 @@ var_dump($people[0]['name']); ?> ===DONE=== ---EXPECT-- +--EXPECTF-- string(3) "Foo" string(6) "FooBar" string(9) "FooBarBaz" ===ArrayOverloading=== string(3) "Foo" -string(6) "FooBar" -string(9) "FooBarBaz" -===DONE=== + +Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference in %sarray_access_008.php on line %d