在函数参数中将String转换为PHP中的变量


Convert String to variable in PHP inside function argument

下面是我创建的代码。我的重点是转换函数参数中的所有字符串。

例如,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;(