Bug #15065 Updated: include behaviour
| From: | hholzgra@php.net | Date: | Wed, 16 Jan 2002 14:28:54 +0000 |
| Subject: | Bug #15065 Updated: include behaviour | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-77250@lists.php.net to get a copy of this message | ||
ID: 15065
Updated by: hholzgra
Reported By: tit.petric@telemach.net
Status: Closed
Bug Type: Feature/Change Request
Operating System: im guessing, all
PHP Version: 4.0.6
New Comment:
a php.ini setting would only lead to additional confusion IMHO
what about declaring your globals as "global $var;"
once in your include files? shouldn't harm if executed
in global scope and should make stuff global if
included in function scope? (untested)
Previous Comments:
------------------------------------------------------------------------
[2002-01-16 07:30:32] tit.petric@telemach.net
even with $GLOBALS or $_GLOBALS in 4.1, it still only reduces the
problem by a larage part, but still enough of it remains visible.
i dont want to use $_GLOBALS['varname'] for variable definitions
outside functions (in global scope), to make it global on any depth of
include(), when it seems very simple to add a switch to change
include()'s behaviour, so that all variables set outside the functions
would/could automatically be considered global.
i know with 4.1 its easier to bypass this with php code, but you could
just remove $_GLOBAL[] outside the functions alltogether if you wanted
to set(use?) global variables.
------------------------------------------------------------------------
[2002-01-16 07:08:05] hholzgra@php.net
please use the special array $GLOBALS[]
------------------------------------------------------------------------
[2002-01-16 06:57:07] tit.petric@telemach.net
it probably applies to all versions of php, atleast 4.x :)
------------------------------------------------------------------------
[2002-01-16 06:54:21] tit.petric@telemach.net
If the include() occurs inside a function within the calling file, then
all of the code contained in the called file will behave as though it
had been defined inside that function.
<< this is the current behaviour, straight out of the manual for
include(),..
now, this gets tricky, if you have function includes over 3-4-5 or more
levels of includes, for example
index.php calls subfiles() which includes blah.php which calls
modules.php which includes file.php and so on..
usage of global variables in theese files forces people to use global
definitions like in functions on a global-current-file-scope, or in one
of the lower levels in functions,..
maybe if would be a good idea to make a php.ini switch like
force_global_includes to change this behaviour, so the variables in the
includes always get defined in the global scope?
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=15065&edit=1