0

我收到一个字符串

a=100,b=20,c=20;

例如,我知道使用 , 作为分隔符将它分解成一个数组,它变成

a=100
b=20
c=20 

作为字符串,

如何将其进一步评估为 php 中的变量,以便我可以这样做

echo $a //100
echo $b //20
echo $c //20
4

6 回答 6

2

试试函数“parse_str”,比如

$str = str_replace(',','&',"a=100,b=10,c=20");
parse_str($str);
echo $a;
echo $b;
echo $c;
于 2012-05-08T08:57:08.927 回答
1
$string = 'a=1,b=20,c=43';
foreach ( explode(',', $string) as $expression ) {
    list($variable,$value) = explode('=', $expression);
    $$variable = $value;
}
echo 'a = ', $a, ' and b = ', $b, ' and c = ', $c, PHP_EOL;

干杯

于 2012-05-08T08:55:19.753 回答
0

取决于您希望一切都变得多么“危险”-您始终可以使用eval但是还有很多问题需要考虑。

例子:

eval("\$str = \"test\";");
echo $str;
于 2012-05-08T08:54:40.287 回答
0

试试这个

$input = 'a=100,b=20,c=20';
$items = explode(',',$input);

foreach($items as $i){
  $pair = explode('=',$i);
  $$pair[0] = $pair[1];
}
于 2012-05-08T08:54:49.917 回答
0
$input = 'a=100,b=20,c=20';

$statements = explode (',', $input);

foreach ($statements as $s)
  eval ('$' . $s); // THIS IS EVIL!!!! TOO MANY SECURITY PROBLEMS


echo $a; // will output 100
echo $b; // will output 20
echo $c; // will output 20
于 2012-05-08T08:55:53.950 回答
0

您可以为变量使用变量名。举个例子:

$var = 'var2';
$$var = 5;
echo $var2;

这将 5 回显到命令行。

$var评估为存在var2,并$var2设置为 5。

使用您的代码,我们可以创建:

$string = 'a=100,b=20,c=20';
$array = explode(',',$string);
foreach($array as $element) {
     $temp = explode('=',$element);
     $$temp[0] = $temp1;
}
echo $a.' '.$b.' '.$c;

这与字符串“100 20 20”相呼应。

于 2012-05-08T08:59:29.207 回答