我想访问一个名为$item1
,$item2
或$item3
的变量。
我想在每次$i
为++
的for循环中访问此变量。使用$item.$i
或类似的东西。但是,使用该代码意味着我正在尝试连接两个变量的内容,并且没有名为$ item的变量。
答案 0 :(得分:4)
虽然PHP确实允许您从各种其他值构建动态变量名,但在这种情况下您可能不应该这样做。在我看来,数组更适合你:
$items = array( 0, 12, 34 );
然后,您可以单独访问每个值:
echo $items[0]; // 0
echo $items[1]; // 12
或遍历整个集合:
foreach ( $items as $number ) {
echo $number; // 1st: 0, 2nd: 12, 3rd: 34
}
您在OP的评论中指出$item1
到$item3
已经是数组。如果你喜欢array_merge()
,可以将它们全部合并为一个数组,如下所示:
$item1 = array( 1, 2 );
$item2 = array( 3, 4 );
$item3 = array( 5, 6 );
$newAr = array_merge( $item1, $item2, $item3 );
print_r( $newAr );
哪个输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
为完整起见,如果要通过动态构造变量名来解决问题,可以执行以下操作:
$item1 = 12;
$item2 = 23;
$item3 = 42;
for ( $i = 1; $i <= 3; $i++ ) {
echo ${"item".$i} . PHP_EOL;
}
答案 1 :(得分:2)
将要访问的变量名称构建到另一个变量中,然后使用variable variable syntax
<?php
$item1 = 'a';
$item2 = 'b';
$item3 = 'c';
for ($i = 1; $i<=3; $i++) {
$varname = 'item' . $i;
echo $$varname;
}
?>
输出:
ABC
请注意,还有其他方法可以执行此操作,请参阅手册。
答案 2 :(得分:0)
for ($i =1;$i<4;$i++){
$var = 'item'.$i;
echo $$var;
}
您在这里使用double $来创建variable variable。
答案 3 :(得分:0)
使用${'item'.$i}
如果$i == 1
,您将访问$item1
。
但最好在你的情况下使用数组。
答案 4 :(得分:0)
您可以使用数组而不是单个变量吗?那么你可以通过基于i
的索引值来引用数组元素。
$items = array();
$i = 1;
$items[$i] = "foo";
$i++;
$items[$i] = "bah";
echo $items[1], $items[2]; // gives "foobah"
答案 5 :(得分:0)
有点晚了,接受的答案是正确的方法,但PHP确实允许你以OP描述的方式访问变量变量名称:
<?php
$item1 = 'a';
$item2 = 'b';
$item3 = 'c';
for($i=1;$i<=3;$i++)
echo ${"item$i"}; //Outputs: abc
?>