mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
- 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.
This commit is contained in:
parent
21ce9394a7
commit
f01c842ef6
3 changed files with 30 additions and 18 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue