此代码在 PHP 中打印数组是否正确?因为它不起作用


Is this code correct for printing an array in PHP? Because it isn´t working

我想在Drupal 7中打印$tabs数组。所以,我尝试在我的node.tpl中添加以下代码.php:

  <?php
  echo '<div class="btn-group">';
  foreach($tabs as $tab=>$link) {
    echo '<button class="btn"><a href="$link">$tab</a></button>';
  };
  echo '</div>';
  ?>

但是,它没有打印任何东西...所以我确定这有点错误。也许是因为这应该在page.tpl.php里面?是否有我没有发现的语法问题?

感谢您的帮助!!

罗莎蒙达

我看到的一个问题是您正在尝试打印包含在单引号内的变量。 PHP 不会在单引号内插值变量,但它会在双引号内插值。 尝试将回声更改为以下内容:

echo '<button class="btn"><a href="' . $link .'">' . 
    $tab . '</a></button>';

从手册:

注意:与双引号和 heredoc 语法不同,变量和转义 特殊字符的序列在 单引号字符串。

有关详细信息,请参阅字符串的手动输入

引用这样的变量仅适用于双引号,而不适用于单引号,因此它必须是

 echo '<button class="btn"><a href="'.$link.'">'.$tab.'</a></button>';

echo "<button class='"btn'"><a href='"$link'">$tab</a></button>";

不过,这可能不会修复您的代码。