我正在尝试传递一组变量名来分配给list()
函数,我想知道它是否可能。我的意图是list($variables)
解析$values
。
$variables = array("$var1","$var2","$var3");
$values = array('Value1','Value2','Value3');
//Can I simply pass an array of variable names to be assigned here
list($values) = explode("&", $values);
为了澄清,我的目的是让PHP执行:
list($var1, $var2, $var3) = explode("&", $values);
答案 0 :(得分:2)
你必须做一点小动作,但使用array_combine
和extract
可以达到同样的效果:
$keys = array("var1","var2","var3");
$values = array('Value1','Value2','Value3');
extract(array_combine($keys, $values));
echo $var1; //"Value1"
答案 1 :(得分:0)
<?php
$info = array('coffee', 'brown', 'caffeine');
// Listing all the variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";
// Listing some of them
list($drink, , $power) = $info;
echo "$drink has $power.\n";
// Or let's skip to only the third one
list( , , $power) = $info;
echo "I need $power!\n";
// list() doesn't work with strings
list($bar) = "abcde";
var_dump($bar); // NULL
?>
答案 2 :(得分:0)
list
用于在一个操作中分配变量列表。这是sytax:
$string = 'VarA, VarB, VarC';
list($varA, $varB, $varC) = explode(',', $string);
当你使用变量时,你需要保持引号,所以第二个是正确的。
$array = ($var1, $var2, $var3);
您不再需要使用explode
,因为您已经有了一个数组。 explode
创建一个数组。在您的示例中,它将是:
$array = array($var1, $var2, $var3);
list($varA, $varB, $varC) = $array;
请注意,我更改了数组语法。您忘记了array
关键字。
答案 3 :(得分:0)
我知道您要爆炸响应变量并将每个值分配给相应的变量。
您可以通过这种方式实现它,而不是使用list:
$varnames = array('var1','var2','var3');
$varvals = explode('&',$response);
foreach($varnames as $k => $v){
$$v = $varvals[$k];
}
这样$ var1将在响应中具有第一个值,$ var2将具有第二个值,依此类推。
答案 4 :(得分:-1)
你做不到。为什么你不使用你的变体?