Re: Language Question

From: Date: Wed, 14 Feb 2001 17:39:20 +0000
Subject: Re: Language Question
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-46579@lists.php.net to get a copy of this message
just replace $var with $GLOBALS['var'] where you want a global no matter what. However, I would also welcome macros. At 18:16 14.2. 2001, John Woolbright wrote the following: -------------------------------------------------------------- >Is there any way in php to create macros for inline execution of code >without creating scoping issues like function() does. For Example: > >if you had a macro set up so like this >Macro($x) { > for($i=0;$i<$x;$i++) { > echo $x; > } >} > >and a program like this > >$x=15; >Macro($x); > >$x=45 >Macro($45); > >you could call this macro an php would basically make the substitutions >and execute the code within the current scope of the program without >dropping into the scope of a function. Although this would be >inefficient for most things it could be a useful for some applications. > >The reason I am looking to do this is because I have a very large >codebase of php scripts that are broken into modular pieces. I have a >function called Uses($includes) that allows you to pass in a string of >include files. Uses() runs through a loop to include the files but, >because Uses is a function all variables within the included files go >out of scope when the function executes. Many of the included files >have defined global variables that are defined for use with the included >file. If there were some sort of Macro syntax then every time the Macro >is called the code is copyied and in-lined executed within the current >running scope. There may be way to do this. For some scripts with >complicated and nested includes the uses() function might get called >several times to include files needed by submodules of modules. I could >do this with the include function but the way we have it set up it makes >the scripts easier to read. > >i.e. Uses("Sql Date Http Browser") would include the sql.inc date.inc >http.inc and browser.inc without having to specifiy >Include('sql.inc'); >Include('date.inc'); >Include('httpd.inc'); >Include('browser.inc.'); > >the current uses function looks like this >Uses ($includes); > $libs=explode(" ",$includes); > for ($i=0;$i<count($libs);$i++) { > $filename= trim(strtolower($libs[$i])) . '.inc.'; > include($filename); > } >} > > >Any feedback would be appreciated. > >John Woolbright > > >-- >PHP Development Mailing List <http://www.php.net/> >To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net >For additional commands, e-mail: php-dev-help@lists.php.net >To contact the list administrators, e-mail: php-list-admin@lists.php.net ------end of quote------ ____________________________________________________________ Cynic: A member of a group of ancient Greek philosophers who taught that virtue constitutes happiness and that self control is the essential part of virtue. cynic@mail.cz

« previous php.dev (#46579) next »