1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- --TEST--
- Bug #31683 (changes to $name in __get($name) override future parameters)
- --FILE--
- <?php
- class Foo implements ArrayAccess {
- function __get($test) {
- var_dump($test);
- $test = 'bug';
- }
- function __set($test, $val) {
- var_dump($test);
- var_dump($val);
- $test = 'bug';
- $val = 'bug';
- }
- function __call($test, $arg) {
- var_dump($test);
- $test = 'bug';
- }
- function offsetget($test) {
- var_dump($test);
- $test = 'bug';
- return 123;
- }
- function offsetset($test, $val) {
- var_dump($test);
- var_dump($val);
- $test = 'bug';
- $val = 'bug';
- }
- function offsetexists($test) {
- var_dump($test);
- $test = 'bug';
- }
- function offsetunset($test) {
- var_dump($test);
- $test = 'bug';
- }
- }
- $foo = new Foo();
- $a = "ok";
- for ($i=0; $i < 2; $i++) {
- $foo->ok("ok");
- $foo->ok;
- $foo->ok = "ok";
- $x = $foo["ok"];
- $foo["ok"] = "ok";
- isset($foo["ok"]);
- unset($foo["ok"]);
- // $foo[];
- $foo[] = "ok";
- // isset($foo[]);
- // unset($foo[]);
- $foo->$a;
- echo "---\n";
- }
- ?>
- --EXPECT--
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- NULL
- string(2) "ok"
- string(2) "ok"
- ---
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- string(2) "ok"
- NULL
- string(2) "ok"
- string(2) "ok"
- ---
|