1 changed files with 118 additions and 0 deletions
@ -0,0 +1,118 @@ |
|||||
|
--TEST-- |
||||
|
Bug #22367 (weird zval allocation problem) |
||||
|
--FILE-- |
||||
|
<?php |
||||
|
class foo |
||||
|
{ |
||||
|
var $test = array(0, 1, 2, 3, 4); |
||||
|
|
||||
|
function a($arg) { |
||||
|
var_dump(array_key_exists($arg, $this->test)); |
||||
|
return $this->test[$arg]; |
||||
|
} |
||||
|
|
||||
|
function b() { |
||||
|
@$this->c(); |
||||
|
|
||||
|
$zero = $this->test[0]; |
||||
|
$one = $this->test[1]; |
||||
|
$two = $this->test[2]; |
||||
|
$three = $this->test[3]; |
||||
|
$four = $this->test[4]; |
||||
|
return array($zero, $one, $two, $three, $four); |
||||
|
} |
||||
|
|
||||
|
function c() { |
||||
|
return $this->a($this->d()); |
||||
|
} |
||||
|
|
||||
|
function d() {} |
||||
|
} |
||||
|
|
||||
|
class bar extends foo |
||||
|
{ |
||||
|
var $i = 0; |
||||
|
var $idx; |
||||
|
|
||||
|
function bar($idx) { |
||||
|
$this->idx = $idx; |
||||
|
} |
||||
|
|
||||
|
function &a($arg){ |
||||
|
return parent::a($arg); |
||||
|
} |
||||
|
function d(){ |
||||
|
return $this->idx; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
$a = new bar(5); |
||||
|
var_dump($a->idx); |
||||
|
@$a->c(); |
||||
|
$b = $a->b(); |
||||
|
var_dump($b); |
||||
|
var_dump($a->test); |
||||
|
|
||||
|
$a = new bar(2); |
||||
|
var_dump($a->idx); |
||||
|
@$a->c(); |
||||
|
$b = $a->b(); |
||||
|
var_dump($b); |
||||
|
var_dump($a->test); |
||||
|
|
||||
|
?> |
||||
|
--EXPECT-- |
||||
|
int(5) |
||||
|
bool(false) |
||||
|
bool(false) |
||||
|
array(5) { |
||||
|
[0]=> |
||||
|
int(0) |
||||
|
[1]=> |
||||
|
int(1) |
||||
|
[2]=> |
||||
|
int(2) |
||||
|
[3]=> |
||||
|
int(3) |
||||
|
[4]=> |
||||
|
int(4) |
||||
|
} |
||||
|
array(5) { |
||||
|
[0]=> |
||||
|
int(0) |
||||
|
[1]=> |
||||
|
int(1) |
||||
|
[2]=> |
||||
|
int(2) |
||||
|
[3]=> |
||||
|
int(3) |
||||
|
[4]=> |
||||
|
int(4) |
||||
|
} |
||||
|
int(2) |
||||
|
bool(true) |
||||
|
bool(true) |
||||
|
array(5) { |
||||
|
[0]=> |
||||
|
int(0) |
||||
|
[1]=> |
||||
|
int(1) |
||||
|
[2]=> |
||||
|
int(2) |
||||
|
[3]=> |
||||
|
int(3) |
||||
|
[4]=> |
||||
|
int(4) |
||||
|
} |
||||
|
array(5) { |
||||
|
[0]=> |
||||
|
int(0) |
||||
|
[1]=> |
||||
|
int(1) |
||||
|
[2]=> |
||||
|
int(2) |
||||
|
[3]=> |
||||
|
int(3) |
||||
|
[4]=> |
||||
|
int(4) |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue