【问题标题】:php foreach value loop of variables in file.php instead of arrayphp foreach 变量的值循环 file.php 而不是数组
【发布时间】:2016-01-27 02:35:13
【问题描述】:

我正在尝试找到一种方法来创建一个 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>';
}
?>

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

我想要做的是将变量存储在像 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>';
}
?>

我如何在包含的 file.php 中循环遍历变量?

【问题讨论】:

  • echo $stuff['foo']; 也许?
  • 哇哦,太感谢你了。我不知道这只是添加单引号的问题。你能把它作为答案回复,以便我选择它是正确的吗?
  • 您的第一个版本更易于维护/使用。它只是一个数组。您的第二个版本会用随机变量名称乱扔变量空间,并且它们不能被 foreached(),因为它们不是数组。

标签: php loops foreach


【解决方案1】:

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

echo $stuff['foo'];

【讨论】:

    【解决方案2】:

    当您在 php 中包含文件时,将其视为简单地将该文件的内容复制粘贴到您正在制作包含的脚本中会很有帮助。

    因为您已将数组声明为

    $stuff
    

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

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

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      我认为您也可以使用可变变量 (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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 2014-05-27
        • 1970-01-01
        • 2012-09-26
        相关资源
        最近更新 更多