Re: Re: problem with super global '$_REQUEST'

From: Date: Thu, 15 Jul 2004 22:46:00 +0000
Subject: Re: Re: problem with super global '$_REQUEST'
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-190651@lists.php.net to get a copy of this message
You *can* unset it, you just have to unset the place where it really sits. When you have a global in a function, then unset it, you only disconnect the variable. unset doesn't destroy a variable, it just breaks the reference. As I said in my earlier e-mail, using this *will* work (I tested it): unset($GLOBALS['_REQUEST']); $GLOBALS is itself a superglobal.....hmmm, wonder what would happen if you unset($GLOBALS['GLOBALS']).... On Thu, 15 Jul 2004 15:25:55 -0700, Dennis Gearon <gearond@fireserve.net> wrote: > OK, after lots of reading, I find out it's not possible to unset something that has been > 'globalized' in a function, nor ANY global value. However, some online manual pages > documented that it's possible to assign NULL to the value. Well that's NOT unset. > > But,that got me to thinking. What about assigning an unset variable to the global? IT WORKS! > > Change the line below: > > unset( $_REQUEST ); > *--to--* > $unset_variable; > $_REQUEST = $unset_variable; > > VOILA! no more $_REQUEST super_global. Now, I need to see if it can still be assigned to as if > it's a super global. > > > > Dennis Gearon wrote: > > > I have a function in a class that unsets the superglobal $_REQUEST; > > > > Well, it's supposed to, it doesn't do it. I'm on version 4.2.3 of PHP. > > This page: > > > > > > http://us2.php.net/manual/en/language.variables.predefined.php#language.variables.superglobals > > > > > > says that $_REQUEST is a super global as of version 4.1.0. Is there some > > bug I don't know about or am I doing something wrong? > > > > Here's the code: > > > > <?PHP > > $_REQUEST["var1"]="\"><script>script > > stuff</script>"; > > $_REQUEST["var2"]="a_string_of_course"; > > $_REQUEST["arr1"]["elem1"]="<script>script > > stuff2</script>"; > > $_REQUEST["arr1"]["elem2"]="another_string_of_course"; > > > > if( !defined('TEST_UNSET') ){ > > define('TEST_UNSET', TRUE); > > > > class abstract_environment{ > > var $_REQUEST; > > function abstract_environment(){ > > $this->_REQUEST=$_REQUEST; > > unset( $_REQUEST ); > > echo("unset was done"); > > $this->_clean_all_vars(); > > } > > function _clean_all_vars(){ > > //ADD OTHER PROCESSING AS NEEDED > > $this->_strip_tags_arr( $this->_REQUEST ); > > } > > function _strip_tags_arr( &$arr_or_solo ){ > > if( isset($arr_or_solo) ){ > > if( !is_array($arr_or_solo) ){ > > $arr_or_solo= strip_tags($arr_or_solo); > > } else { > > reset ($arr_or_solo); > > while (list($key, ) = each ($arr_or_solo)) { > > if( isset($arr_or_solo[$key]) ){ > > if( is_array($arr_or_solo[$key]) ){ > > $this->_strip_tags_arr($arr_or_solo[$key]); > > } else { > > $arr_or_solo[$key] = > > strip_tags($arr_or_solo[$key]); > > } > > } > > } > > } > > } > > } > > > > } > > } > > $abs_env=new abstract_environment; > > echo "<pre>"; > > print_r($_REQUEST); > > print_r( $abs_env ); > > echo "</pre>"; > > ?> > > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > > !DSPAM:40f7048930729073420354! > > -- DB_DataObject_FormBuilder - The database at your fingertips http://pear.php.net/package/DB_DataObject_FormBuilder paperCrane --Justin Patrin--

« previous php.general (#190651) next »