下面是我创建的代码。我的观点是转换函数参数中的所有字符串。
例如,fname('variable1 = value1& variable2 = value2');我需要转换variable1&变量2变为ang变量为$ variable1,$ variable2而不是解析纯文本。我发现eval()函数很有用,但它只需要一个字符串,即“variable1”及其值。
function addFunction($arg){
echo eval('return $'. $arg . ';');
}
addFunction('variable1=value1&variable2=value2');
现在问题是我收到此错误“解析错误:语法错误,意外'='在D:\ xampp \ htdocs ... \ index.php(7):eval()'代码在第1行” 。但是如果我在函数参数中只有一个变量和值,那么它的工作原理很完美,但我需要在这里有更多的参数。这有可能做到这一点,还是有任何其他方法可以计算参数?
谢谢,
答案 0 :(得分:1)
您正尝试使用此名称创建变量:
$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);
}
答案 1 :(得分:1)
您可以使用PHP explode
函数中断字符串,然后使用eval
独立评估每个变量。
$myvars = explode ('$', 'variable1=value1&variable2=value2');
$myvars
是一个数组,您可以根据需要解析并提供给eval
。
答案 2 :(得分:1)
也许你可以使用explode()?
$varArr = explode("&",$arg);
foreach ($varArr as $varKey=>$varVal) {
echo eval('return $'.$varKey.'='.$varVal.';');
}
答案 3 :(得分:1)
你需要拆分$ arg at&得到每个变量,然后再次= =得到每个变量和值。
$arg = 'variable1=value1&variable2=value2';
$vars = explode('&', $arg);
foreach ($vars as $var) {
$parts = explode("=", $var);
echo eval('return $'. $parts[0] . '='. $parts[1] . ';');
}
答案 4 :(得分: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;)
答案 5 :(得分:1)
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');