#40875 [NEW]: Circular require_once causes fatal error

From: Date: Wed, 21 Mar 2007 00:46:46 +0000
Subject: #40875 [NEW]: Circular require_once causes fatal error
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-110618@lists.php.net to get a copy of this message
From:             epotocko at gmail dot com
Operating system: Windows XP Pro
PHP version:      5.2.1
PHP Bug Type:     Compile Failure
Bug description:  Circular require_once causes fatal error

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 bug report at http://bugs.php.net/?id=40875&edit=1
-- 
Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=40875&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=40875&r=trysnapshot52
Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=40875&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=40875&r=fixedcvs
Fixed in release:             http://bugs.php.net/fix.php?id=40875&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=40875&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=40875&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=40875&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=40875&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=40875&r=notwrong
Not enough info:              http://bugs.php.net/fix.php?id=40875&r=notenoughinfo
Submitted twice:              http://bugs.php.net/fix.php?id=40875&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=40875&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=40875&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=40875&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=40875&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=40875&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=40875&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=40875&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=40875&r=mysqlcfg


Thread (5 messages)

« previous php.bugs (#110618) next »