On Mon, Oct 22, 2001 at 12:03:59AM -0000, Bug Database wrote:
> ID: 12560
> Updated by: sniper
> Reported By: [EMAIL PROTECTED]
> Old Status: Open
> Status: Closed
> Bug Type: Class/Object related
> Operating System: Solaris 2.7
> PHP Version: 4.0.6
> New Comment:
>
> Works for me just fine with PHP 4.1.0RC1
Great, so you've fixed it then. Well done!
>
>
> Previous Comments:
> ------------------------------------------------------------------------
>
> [2001-08-03 13:51:21] [EMAIL PROTECTED]
>
> This bug occurred with Solaris 2.7 and a regular build of php as a standalone app. I
>haven't tested on Linux yet.
>
> If the base class of a few levels of inheritance is in an included or required file,
>then 'parent' may be incorrectly setup. Calls via 'parent' will actually call $this,
>and then give incorrect and most likely disastrous behaviour.
>
> The following example will quickly crash due to stack overflow from infinite
>recursion, whereas inlining the base class 'X' rather than including it will work as
>expected.
>
> Incidentally, instantiating a B rather than a C will work correctly in both cases.
>
> File X.php:
>
> <?php
>
> class X
> {
> function X() { }
> }
>
> ?>
>
> File crashme.php:
>
> <?php
>
> // Commenting out include and uncommenting class X
> // below will work, whilst including X will crash
>
> include_once 'X.php';
>
>
> /*
> class X
> {
> function X() { }
> }
> */
>
> class A extends X
> {
> function A() { $this->X(); }
>
> function crash_me() { }
> }
>
> class B extends A
> {
> function B() { $this->A(); }
>
> function crash_me() { parent::crash_me(); }
> }
>
> class C extends B
> {
> function C() { $this->B(); }
> }
>
> $r = new C();
> $r->crash_me();
>
> ?>
>
>
>
>
> ------------------------------------------------------------------------
>
>
>
> ATTENTION! Do NOT reply to this email!
> To reply, use the web interface found at http://bugs.php.net/?id=12560&edit=2
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]