下面是我创建的代码。我的重点是转换函数参数中的所有字符串。
例如,fname('variable1=value1&variable2=value2'(;我需要转换variable1&variable2转换为ang变量$variable1,$variable2解析纯文本。我发现eval((函数很有用,但它只需要一个字符串,即"variable1"及其值。
function addFunction($arg){
echo eval('return $'. $arg . ';');
}
addFunction('variable1=value1&variable2=value2');
现在的问题是,我在第1行得到了这个错误"解析错误:语法错误,D:''examplep''htdocs…''index.php(7(:eval((代码中意外的'='"。但是,如果函数参数中只有一个变量和值,那么它是完美的,但这里需要更多的参数。这有可能做到吗?或者在评估之前有没有其他方法来计算参数?
谢谢你,
function addFunction($arg)
{
parse_str($arg, $args);
foreach ($args as $key => $val) {
echo $key , " --> " , $val, "'n";
}
}
addFunction('variable1=value1&variable2=value2');
输出
variable1 --> value1
variable2 --> value2
你也可以使用
function addFunction($arg)
{
parse_str($arg);
echo $variable2; // value2
}
addFunction('variable1=value1&variable2=value2');
您正试图创建一个名为的变量
$variable1=value1&variable2=value2
您需要在&
处分解它,以获得所需的未来变量名。
function addFunction($arg){
echo eval('return $'. $arg . ';');
}
$string = 'variable1=value1&variable2=value2';
$array = explode('&', $string);
foreach($array as $part)
{
addFunction($part);
}
您可以使用PHP explode
函数分解字符串,然后使用eval
独立计算每个变量。
$myvars = explode ('$', 'variable1=value1&variable2=value2');
$myvars
是一个数组,您可以根据需要解析它并将其提供给eval
。
也许您可以使用explode((?
$varArr = explode("&",$arg);
foreach ($varArr as $varKey=>$varVal) {
echo eval('return $'.$varKey.'='.$varVal.';');
}
您需要在&获取每个变量,然后在=处再次获取每个变量和值。
$arg = 'variable1=value1&variable2=value2';
$vars = explode('&', $arg);
foreach ($vars as $var) {
$parts = explode("=", $var);
echo eval('return $'. $parts[0] . '='. $parts[1] . ';');
}
类似这样的东西:
function addFunction($arg)
{
$varArr = explode("&",$arg);
$varResponse ="";
foreach ($varArr as $varKey=>$varVal) {
$varResponse = $varResponse."$".$varVal.";";
}
return $varResponse;
}
echo addFunction('variable1=value1&variable2=value2');
Saludos;(