summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2005-06-19 20:49:17 +0000
committerMarcus Boerger <helly@php.net>2005-06-19 20:49:17 +0000
commitf01c842ef660b793258926296de93694eaa4444f (patch)
tree19ef2c981bfb496cb13561936aa8d75d90958a92
parent21ce9394a7239de36cc89e774848e81fd2a24509 (diff)
downloadphp-git-f01c842ef660b793258926296de93694eaa4444f.tar.gz
- 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.
-rw-r--r--tests/classes/array_access_003.phpt9
-rwxr-xr-xtests/classes/array_access_005.phpt28
-rwxr-xr-xtests/classes/array_access_008.phpt11
3 files changed, 30 insertions, 18 deletions
diff --git a/tests/classes/array_access_003.phpt b/tests/classes/array_access_003.phpt
index bed09b89e5..2d42665fc6 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 5c6271d257..f248f2172c 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 84ecf08ba8..0130388245 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];
}
@@ -40,6 +40,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']);
$people[0]['name'] .= 'Baz';
@@ -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