#40875 [Opn]: Circular require_once causes fatal error

From: 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

« previous php.bugs (#110619) next »