在while循环中组合PHP变量
不确定标题是否正确,但我不确定如何称呼我试图实现的目标。表面上看起来很简单 我编写了以下代码:在while循环中组合PHP变量,php,variables,Php,Variables,不确定标题是否正确,但我不确定如何称呼我试图实现的目标。表面上看起来很简单 我编写了以下代码: $var1 = "55"; $var2 = "66"; $var3 = "22"; $var4 = "22"; $x = 1; $result = "null"; while($x < 5) { $result = "$" . "var" . "$x"; echo $result; echo " | "; $x = $x +1; } $var1=“55”; $var2=“66”; $var3
$var1 = "55";
$var2 = "66";
$var3 = "22";
$var4 = "22";
$x = 1;
$result = "null";
while($x < 5) {
$result = "$" . "var" . "$x";
echo $result;
echo " | ";
$x = $x +1;
}
$var1=“55”;
$var2=“66”;
$var3=“22”;
$var4=“22”;
$x=1;
$result=“null”;
而($x<5){
$result=“$”变量“$x”;
回声$结果;
回声“|”;
$x=$x+1;
}
希望得到:
55 | 66 | 22 | 22
相反,我得到的是:
$var1 |$var2 |$var3 |$var4|
我尝试了很多方法,但都找不到有效的解决方案,任何帮助都会很难找到
谢谢请看这里的声明
$result = "$" . "var" . "$x";
$result
变量实际上是一个字符串。要获得它的价值,请使用。此外,通过您的方法,最终您将获得额外的|
。因此,为了获得所需的结果,请按以下方式更改while()
循环
while (true) {
$result = "var" . $x;
echo $$result;
if($x++ == 4) break;
echo " | ";
}
$output = "";
while (--$x) {
$result = "var" . $x;
$output = $$result . " | " . $output;
}
echo rtrim($output, " | ");
这里有一个
此外,请务必研究@freginold的解决方案,我对其进行了一些修改,以满足您的需要。使用
5
初始化$x
,并按以下方式更改while()
循环
while (true) {
$result = "var" . $x;
echo $$result;
if($x++ == 4) break;
echo " | ";
}
$output = "";
while (--$x) {
$result = "var" . $x;
$output = $$result . " | " . $output;
}
echo rtrim($output, " | ");
在这个解决方案中,当退出循环时,最终会得到一个额外的|
,需要使用函数对其进行修剪
这里有一个请看这里的声明
$result = "$" . "var" . "$x";
$result
变量实际上是一个字符串。要获得它的价值,请使用。此外,通过您的方法,最终您将获得额外的|
。因此,为了获得所需的结果,请按以下方式更改while()
循环
while (true) {
$result = "var" . $x;
echo $$result;
if($x++ == 4) break;
echo " | ";
}
$output = "";
while (--$x) {
$result = "var" . $x;
$output = $$result . " | " . $output;
}
echo rtrim($output, " | ");
这里有一个
此外,请务必研究@freginold的解决方案,我对其进行了一些修改,以满足您的需要。使用
5
初始化$x
,并按以下方式更改while()
循环
while (true) {
$result = "var" . $x;
echo $$result;
if($x++ == 4) break;
echo " | ";
}
$output = "";
while (--$x) {
$result = "var" . $x;
$output = $$result . " | " . $output;
}
echo rtrim($output, " | ");
在这个解决方案中,当退出循环时,最终会得到一个额外的|
,需要使用函数对其进行修剪
下面是一个数组是否工作得更好
<?php
$vars = array(
'var1' => 55,
'var2' => 66,
'var3' => 22,
'var4' => 22
'x' => 1
);
foreach($vars as $key => $value){
print $value;
}
?>
阵列是否工作得更好
<?php
$vars = array(
'var1' => 55,
'var2' => 66,
'var3' => 22,
'var4' => 22
'x' => 1
);
foreach($vars as $key => $value){
print $value;
}
?>
另一个没有
的解决方案,而循环:
$var1 = "55";
$var2 = "66";
$var3 = "22";
$var4 = "22";
$vars = array($var1, $var2, $var3, $var4);
echo implode(' | ', $vars);
另一个没有while
循环的解决方案:
$var1 = "55";
$var2 = "66";
$var3 = "22";
$var4 = "22";
$vars = array($var1, $var2, $var3, $var4);
echo implode(' | ', $vars);
当您打算将该字符串的值计算为$var1
时,您正在构建一个名为$var1
的字符串。我猜您不知道您将预先处理哪些变量名。然而,在未知输入流上使用eval
是一种不好的方法。如@PeeHaa所说,使用数组并对其进行迭代。数组是一个很好的主意,但在这种情况下,我真的很想找到一种方法使其在没有数组的情况下工作。上面的代码是我尝试执行的操作的简化版本,它包含四个不同的数组。我想发布这个模拟问题的精简代码会更容易。当您打算将该字符串的值计算为$var1
时,您正在构建一个名为$var1
的字符串。我猜您不知道您将预先处理哪些变量名。然而,在未知输入流上使用eval
是一种不好的方法。如@PeeHaa所说,使用数组并对其进行迭代。数组是一个很好的主意,但在这种情况下,我真的很想找到一种方法使其在没有数组的情况下工作。上面的代码是我尝试执行的操作的简化版本,它包含四个不同的数组。我认为发布这个模拟问题的精简代码会更容易。这是目前为止最好的解决方案。您甚至可以通过包含$output=”“
在初始化中,然后将while
循环更改为:while(--$x){$result=“var”。$x”;$output=$$result.|“$output;}
与echo$output代码>结尾。@freginold很好的尝试,;-)但是你的代码中有一个缺陷,我现在注意到了。在您的方法中,元素将以相反的顺序打印,因为我们使用5
初始化$x
。当然,您还必须更改$x=1代码>至$x=5代码>它们以相反的顺序处理,但通过将新值添加到输出字符串的开头,以正确的顺序打印:)@freginold,你说得对,我没想清楚。很好的解决方案!我也会在回答中加上它。干杯!:-)这是迄今为止最好的解决方案。您甚至可以通过包含$output=”“
在初始化中,然后将while
循环更改为:while(--$x){$result=“var”。$x”;$output=$$result.|“$output;}
与echo$output代码>结尾。@freginold很好的尝试,;-)但是你的代码中有一个缺陷,我现在注意到了。在您的方法中,元素将以相反的顺序打印,因为我们使用5
初始化$x
。当然,您还必须更改$x=1代码>至$x=5代码>它们以相反的顺序处理,但通过将新值添加到输出字符串的开头,以正确的顺序打印:)@freginold,你说得对,我没想清楚。很好的解决方案!我也会在回答中加上它。干杯!:-)