php中变量的phpforeach值循环.php而不是数组


php foreach value loop of variables in file.php instead of array

我正试图找到一种方法来创建一个foreach循环,在那里我可以回显所有值,这可以在数组中完成,但问题是(据我所知)我不能像用变量名称回显它们一样。

现在的例子:

<?php
$stuff = array(
foo => "<a href='"/foo'">foo</a>",
bar => "<a href='"/bar'">bar</a>",
thing => "Thing",
);
?>
<?php
foreach($stuff as $val) {
    print '<li>' . $val . '</li>';
}
?>

我的问题是,我不能只在<?php echo $foo; ?>这样的任何地方按名称回显其中一个,就像它们被存储为变量一样。据我所知,我只能像<?php echo $stuff[1]; ?> 一样通过它们的编号来回应它们

我想做的是将变量存储在file.php这样的文件中,并且仍然可以像上面那样进行foreach循环。

示例:

<?php
$foo = "<a href="/foo">foo</a>";
$bar = "<a href="/bar">bar</a>";
$thing = "Thing";
?>

我想要的伪代码:

<?php
foreach(var in /path/to/file.php as $value) {
    print '<li>' . $value . '</li>';
}
?>

如何在包含的文件.php中对变量进行foreach循环?

我的建议是使用数组。您可以通过它foreach(),也可以直接访问项目:

echo $stuff['foo'];

当您在php中包含一个文件时,将其视为简单地将该文件的内容直接复制粘贴到进行包含的脚本中是很有帮助的。

因为您已将数组声明为

$stuff

我建议将它们保持为数组形式。然后,您应该能够通过以下方式访问其密钥。

echo $stuff['foo'];
echo $stuff['bar'];
echo $stuff['thing'];

希望这能有所帮助。

我认为您也可以使用变量(http://php.net/manual/en/language.variables.variable.php)。

$foo = 'hi';
$bar = 'you';
$thing = 'all';
$stuff = array(
    'foo' => "<a href='"/foo'">foo</a>",
    'bar' => "<a href='"/bar'">bar</a>",
    'thing' => "Thing",
);
foreach($stuff as $key => $value) {
    print '<li>' . $$key . '</li>'; //Note the double dollar $$
}

结果:

hi
you
all