php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #3403 duplicate loading of include files
Submitted: 2000-02-04 09:42 UTC Modified: 2000-07-28 02:02 UTC
From: terado at hotmail dot com Assigned:
Status: Closed Package: Other
PHP Version: 3.0.14 OS: All
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: terado at hotmail dot com
New email:
PHP Version: OS:

 

 [2000-02-04 09:42 UTC] terado at hotmail dot com
This probably is not strictly a bug but is certainly something that does not follow normal programming methods and so is important.

When you include or require a file there is no logical way to prevent duplicate loading.  So for example if there are three files as:

//File 1 - file1.php3
include "imp.inc";
testimp();
include "file2.inc";

//File 2 - file2.inc
include "imp.inc";
testimp();

//File 3 - imp.inc
function testimp(){
    print "hello\n";
}

This will not work, also using require.  I would either expect that I could put something like #ifndef to prevent reinclusion or I would expect this to infact be the difference that require would play.

It is also a real pain to get around this problem.

Hope this is clear, and relevant.

Thanks, Nick

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2000-07-28 02:02 UTC] hholzgra@php.net
on php4 you have include_once() and require_once()

for php3 you can do:

---8<----- filename.inc -----------------
if(! $included_filename){
... whatever code you want, including function definitions ...
}
$included_filename=true;
--------------------->8-----
 
PHP Copyright © 2001-2023 The PHP Group
All rights reserved.
Last updated: Wed Feb 01 10:03:45 2023 UTC