1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- --TEST--
- Bug #52614 (Memory leak when writing on uninitialized variable returned from method call)
- --FILE--
- <?php
- class foo {
- public $a1;
- public $a2 = array();
- public $a3;
- public $o1;
- public $o2;
-
- public function f1() {
- return $this->a1;
- }
- public function f2() {
- return $this->a2;
- }
- public function f3() {
- $this->a3 = array();
- return $this->a3;
- }
- public function f4() {
- return $this->o1;
- }
- public function f5() {
- $this->o2 = new stdClass;
- return $this->o2;
- }
- public function &f6() {
- return $this->a1;
- }
- public function f7(&$x) {
- $x = 2;
- }
- }
- $foo = new foo;
- $foo->f1()[0] = 1;
- var_dump($foo->a1);
- $foo->f2()[0] = 1;
- var_dump($foo->a2);
- $foo->f3()[0] = 1;
- var_dump($foo->a3);
- $foo->f4()->a = 1;
- var_dump($foo->o1);
- $foo->f5()->a = 1;
- var_dump($foo->o2);
- $foo->a1[0] = 1;
- $foo->f7($foo->f6()[0]);
- var_dump($foo->a1[0]);
- $foo->f1()[0]++;
- var_dump($foo->a1[0]);
- $foo->f6()[0]++;
- var_dump($foo->a1[0]);
- --EXPECTF--
- NULL
- array(0) {
- }
- array(0) {
- }
- Warning: Creating default object from empty value in %sbug52614.php on line 52
- NULL
- object(stdClass)#%d (1) {
- ["a"]=>
- int(1)
- }
- int(2)
- int(2)
- int(3)
|