ID: 15065
Updated by: hholzgra
Reported By: [EMAIL PROTECTED]
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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

please use the special array $GLOBALS[]

------------------------------------------------------------------------

[2002-01-16 06:57:07] [EMAIL PROTECTED]

it probably applies to all versions of php, atleast 4.x :)

------------------------------------------------------------------------

[2002-01-16 06:54:21] [EMAIL PROTECTED]

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


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to