moriyoshi               Mon Feb 24 14:38:33 2003 EDT

  Added files:                 (Branch: PHP_4_3)
    /php4/tests/lang    bug22367.phpt 
  Log:
  MFH: added test case for bug #22367
  
  

Index: php4/tests/lang/bug22367.phpt
+++ php4/tests/lang/bug22367.phpt
--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)
}



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to