我有一个包含动态变量的循环,例如:
while(i < 10){
echo ${"dynamic" . $i . "var"};
$i++;
};
如果设置了原始var(比如$dynamic3var
),我想只回显变量,所以我添加:
while(i < 10){
if(isset(${"dynamic" . $i . "var"})){
echo ${"dynamic" . $i . "var"};
$i++;
};
};
然而,这不会起作用,因为它仍在拾取$i
。
有没有人知道这样做的正确方法?
答案 0 :(得分:0)
试试这个:
while($i < 10){
$label = "dynamic".$i."var";
if(isset($$label))
echo $$label;
$i ++;
};
答案 1 :(得分:0)
由于全局变量是糟糕的想法,您应该重新考虑您的代码。一个简单的重构就是使用一个关联数组(即使它在第一步仍然是一个全局变量)。然后你可以使用
if( isset($dynamic[$i]) ) ...
为什么Globals是邪恶的?阅读:http://tomnomnom.com/posts/why-global-state-is-the-devil-and-how-to-avoid-using-it