#40875 [Opn]: Circular require_once causes fatal error
| From: | epotocko at gmail dot com | Date: | Wed, 21 Mar 2007 00:47:52 +0000 |
| Subject: | #40875 [Opn]: Circular require_once causes fatal error | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-110619@lists.php.net to get a copy of this message | ||
ID: 40875
User updated by: epotocko at gmail dot com
Reported By: epotocko at gmail dot com
Status: Open
Bug Type: Compile Failure
Operating System: Windows XP Pro
PHP Version: 5.2.1
New Comment:
I can also reproduce this in Linux with PHP 5.1.6
Previous Comments:
------------------------------------------------------------------------
[2007-03-21 00:46:46] epotocko at gmail dot com
Description:
------------
A circular reference between three files is causing a fatal error.
The simplest example I could reproduce this with is:
B extends A
C extends B
B uses D
D uses C
If class B is modified so that it does not extend class A, the error
does not occur.
Reproduce code:
---------------
ClassA.php:
<?php
class ClassA {}
?>
ClassB.php:
<?php
require_once('ClassA.php');
require_once('ClassD.php');
class ClassB extends ClassA {}
?>
ClassC.php
<?php
require_once('ClassB.php');
class ClassC extends ClassB {}
?>
ClassD.php
<?php
require_once('ClassC.php');
class ClassD {}
?>
test.php
<?php
require_once('ClassB.php');
?>
Expected result:
----------------
If you execute test.php no errors should occur.
Actual result:
--------------
PHP Fatal error: Class 'ClassB' not found in ClassC.php on line 3
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40875&edit=1