ID:               23038
 Updated by:       [EMAIL PROTECTED]
 Reported By:      black at sunshine dot krneki dot org
-Status:           Analyzed
+Status:           Verified
 Bug Type:         Scripting Engine problem
 Operating System: linux debian
 PHP Version:      4.3.3RC2-dev


Previous Comments:
------------------------------------------------------------------------

[2003-07-27 14:30:21] [EMAIL PROTECTED]

This problem has little to do with aggregation functions. This is a ZE
scripting language problem. This can be demonstrated by adding
var_dump(get_class($this)) inside the foo constructor. It'll always
print "foo", the name of the class for the class the constructor is
for, not the 'real' class.

------------------------------------------------------------------------

[2003-06-23 18:02:59] [EMAIL PROTECTED]

Andrei, can you take a look please..?


------------------------------------------------------------------------

[2003-06-23 17:35:43] black at sunshine dot krneki dot org

Got Result:

Doing bar as foo ...
Array
(
    [bar] => Array
        (
            [methods] => Array
                (
                    [0] => doit
                )

            [properties] => Array
                (
                )

        )

)
Doing bar as foo ...

i know the get_class() returns wrong classname on second hit, as it
returns 'foo' instead of 'foobar'.

Expected result should be:

Doing bar as foo ...
Doing bar as foobar ...

Clear enough for you, sniper, buddy? (sorry about this taunt)

------------------------------------------------------------------------

[2003-06-23 17:25:27] [EMAIL PROTECTED]

Not enough info (as in: what was the expected result, etc..etc..)


------------------------------------------------------------------------

[2003-06-21 09:17:30] hewei at ied dot org dot cn

The bug is not fixed. Run the following script either before or after
applying andrei's recent patch, one will reproduct the bug.
<?php

class bar {
 
   function doit()
   {
      print "Doing bar as " . get_class($this) . " ...\n";
   }
}

class foo {

   function foo()
   {
       print_r(aggregation_info($this));
       aggregate($this, "bar");
   }
}

class foobar extends foo {
}

$a = new foo();
$a->doit();

unset($a);

$b = new foobar();
$b->doit();

?>

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/23038

-- 
Edit this bug report at http://bugs.php.net/?id=23038&edit=1

Reply via email to