不确定标题是否是正确的标题,但我不知道如何调用我想要完成的内容。表面上看起来很简单......
我写了以下代码:
$var1 = "55";
$var2 = "66";
$var3 = "22";
$var4 = "22";
$x = 1;
$result = "null";
while($x < 5) {
$result = "$" . "var" . "$x";
echo $result;
echo " | ";
$x = $x +1;
}
希望得到: 55 | 66 | 22 | 22
相反,我得到: $ var1 | $ var2 | $ var3 | $ var4 |
我尝试过很多东西,但无法找到合适的解决方案,任何帮助都会得到很多帮助。
谢谢
答案 0 :(得分:5)
请在此处查看此声明,
$result = "$" . "var" . "$x";
$result
变量实际上是一个字符串。要获得它的价值,请使用variable variables。此外,根据您的方法,您最终会获得额外的|
。因此,要获得所需的结果,请按以下方式更改while()
循环,
while (true) {
$result = "var" . $x;
echo $$result;
if($x++ == 4) break;
echo " | ";
}
这里是demo
此外,请查看 @freginold 的解决方案,我稍作修改以满足您的需求。使用$x
初始化5
并按以下方式更改while()
循环,
$output = "";
while (--$x) {
$result = "var" . $x;
$output = $$result . " | " . $output;
}
echo rtrim($output, " | ");
在此解决方案中,当您离开循环时,您最终会在结尾处获得额外的|
,您需要使用rtrim()
函数进行修剪。
这里是demo
答案 1 :(得分:1)
没有while
循环的另一种解决方案:
$var1 = "55";
$var2 = "66";
$var3 = "22";
$var4 = "22";
$vars = array($var1, $var2, $var3, $var4);
echo implode(' | ', $vars);
答案 2 :(得分:0)
阵列会更好吗?
<?php
$vars = array(
'var1' => 55,
'var2' => 66,
'var3' => 22,
'var4' => 22
'x' => 1
);
foreach($vars as $key => $value){
print $value;
}
?>