note 71610 deleted from language.variables.variable by philip
| From: | philip@php.net | Date: | Sun, 28 Jan 2007 17:47:30 +0000 |
| Subject: | note 71610 deleted from language.variables.variable by philip | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-122293@lists.php.net to get a copy of this message | ||
Note Submitter: lucile dot fievet at eufar dot net
----
This is an example of dynamic code, with variable global scope and
variable variable used in array parsing and function calling:
http://toto.php?num=127
// an example of accepted get var
$arrGet = array('num');
// an example of accepted cookie var
$arrCook = array('myid', 'myweb', 'whatever', 'bof');
//function to get cookies
function cookieGet($varname){
if(isset($_COOKIE[$varname])) return $_COOKIE[$varname];
}
// list of function and array to get var by different means
$listVarArrGetFunc = array('arrGet' => 'urlGet',
'arrPost' => 'postGet',
'arrSess' => 'sessionGet',
'arrCook' => 'cookieGet',
'arrFileUp' => 'fileUploadGet'
);
// dynamic function to get var by all means
function byAllMeansGet($varname){
global $listVarArrGetFunc;
foreach ($listVarArrGetFunc as $arrn => $fctn){
global $$arrn, $$fctn;
if($arrn!='arrGlob'){
$arrayX = $$arrn;
//echo "<br><br> arrn : $arrn -> $$arrn -> $arrayX ";
//echo "fctn : $fctn <br>";
/* **************************************************************
* arrn : arrCook -> $arrCook -> Array fctn : cookieGet *
*****************************************************************/
foreach ($arrayX as $varn){
//echo " varn : $varn -> ";
$$varn = $fctn($varn);
//echo $$varn . " ";
/**********************************************************
varn : myid -> plop varn : myweb -> toto
varn : whatever -> hum varn : bof ->
************************************************************/
if($varname!="" && $varn==$varname)
return $$varn;
if($varname=="" && $varn!=""){
$GLOBALS[$varn]=$$varn;
}
}
}
}
}
//$num = byAllMeansGet("num");
byAllMeansGet("");
echo "num :" . $num;
/**********************************************
num: 127
***********************************************/