[PHP] Re: Variable Variables and Super Global Arrays
Greetings, "daniel danon". In reply to Your message dated Saturday, October 11, 2008, 2:50:34, > By php.net manual, "Please note that variable variables cannot be used with > PHP's Superglobal arrays within functions or class methods". Is there any > way to override this problem? Just the not nice eval("return $variable");? > and in simple words - is there any way to make the following code work: > $varname = "\$_SERVER['REMOTE_ADDR']"; > $varvalue = $$varname; First of all, why you need it to work? Explain real case please. -- Sincerely Yours, ANR Daemon <[EMAIL PROTECTED]> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: Variable variables
Mark Steudel wrote: I was wondering if you could create variable variables for objects, please see examples below, Im having problems getting it to work. $data['fieldname'] = foo; // without variable variables $res =& $db->query( "SELECT foo FROM table" ); while( $res->fetchInto( $db_data ) ) { echo $db_data->foo; // pretend this echos bar } // with variable variables $varVar = '$db_data->'.$data['fieldname']; // should be $db_data->foo Try using double quotes, ie. $varVar = "$db_data->".$data['fieldname']; James - http://www.ciwcertified.com - Master CIW Designer http://www.zend.com - Zend Certified Engineer http://www.jamesbenson.co.uk - -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: Variable variables
Janbro wrote: Hi List, I'm using PHP5 with global variables off. I've got around 20 dynamically generated forms with a total of 300 different variables sent thru these forms. I'd like to use variable variables, but according to the manual this is not possible. Now comes my Questoin, how do I receive my variables which have the form $a_123 or $a_124[]. Is there a workaround for PHP5 or PHP in general? euh, if you're gonna do that automatically, then that's *exactly* the same as setting register_globals = On. Who do I make $data = $_REQUEST['a_123'] work ??? what's wrong with that? if it gets sent under the name 'a_123' then that'll work fine I don't see your problem :S I'd hate to set global variables to on, as I'm dealing with sensitive data. Thx JanBro -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: Variable Variables and Mulitdimensional Arrays
You seem to have three different ideas/questions... let me attempt to answer them: > Hi. I want to be able to access a key in a multidimensional array at some > depth "n" without knowing before runtime what the keys are. let's take a multidimensional array $x $x = array( "somevar", array( "otherval", "evenmore" ) ); echo $x[0]; should print 'somevar' echo $x[1]; should print 'Array' echo $x[1][0]; should print 'otherval' echo $x[1][1]; should print 'evenmore' > > I thought this might be possible using variable variables. Here's some > sample code using variable variables and multidimensional arrays: > $y = 'a'; > $z = 'b'; > $t = 'c'; > $x = array("a"=>array("b"=>array("c"=>TRUE))); > > // I want to be able to concatenate the array indexes into one variable > variable. This would be done in a loop at runtime. if you want to concat all the key's of an array with a loop you could do: reset($x); //just to make sure we are at the first key while(list($key,$val) = each($x)){ $my_keys .= $key } echo $my_keys; should result in: (using $x from my code above) 1 (I think it might even come out as 01 -- but probally 1 since it will be treated as a int maybe =) ) > > Any help would greatly be appreciated, > > Charlie > > Hope that helps, still not sure what your question was or if i answered it ;) -Joe -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Re: variable variables and eval
> i have come across a strange problem with variable variables. Basicly i'm > doing the following and its not working: > > $section = 'data["SITE"][0]["NAME"][0]'; > $pData = 'My Site.'; > ${sprintf('$%s', $section)}.=$pData; > > but it is not working. But if i do this: > > eval('$'.$section.'.="'.addslashes($pData).'";'); > > it works and all is well. I don't really want to use eval() and just > wanted to see if anybody has any ideas why the above doesn't work. Why is the sprintf in there?... Try this: ${$section} .= $pData; -- WARNING [EMAIL PROTECTED] address is an endangered species -- Use [EMAIL PROTECTED] Wanna help me out? Like Music? Buy a CD: http://l-i-e.com/artists.htm Volunteer a little time: http://chatmusic.com/volunteer.htm -- PHP General 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]