我正在尝试使用php使用foreach循环输出导航列表,我遇到了字符串转换的麻烦。
<ul>
<?php
$taco = array("This", "That", "And", "Repeat");
foreach($taco as $php) {
print "<li class=\"nav\"><a href=\"# $taco\"> $taco</a><li>";
}
?>
</ul>
如何在不调整变量的情况下在href中添加#?
答案 0 :(得分:0)
您正尝试使用数组输出值。 $php
包含值:
foreach($taco as $php) {
print "<li class=\"nav\"><a href=\"#{$php}\"> {$php}</a></li>";
}
编辑:我经常更喜欢使用sprintf()
来输出此类语句。每个都是他们自己的,但这是一个很好的方法:
$tag = '<li class="nav"><a href="#%s">%s</a></li>';
foreach($taco as $php) {
print sprintf($tag, $php, $php);
}
答案 1 :(得分:0)
foreach
的语法是:
foreach($array as $element)
所以这会奏效:
$taco = array("This", "That", "And", "Repeat");
foreach($taco as $taco_elem) {
print "<li class=\"nav\"><a href=\"#$taco_elem\">$taco_elem</a></li>";
}
答案 2 :(得分:-1)
你的foreach没有意义,你一定要阅读更多有关数组和循环的内容。
您尝试在每一行上打印整个数组两次,您应该在循环的当前状态下打印实际元素。
至于你的打印问题......然后停止打印HTML ....执行此操作:
<ul>
<?php $tacos = array("This", "That", "And", "Repeat"); ?>
<?php foreach ($tacos as $taco) : ?>
<li class="nav">
<a href="#<?php echo $taco; ?>"><?php echo $taco; ?></a>
</li>
<?php endforeach; ?>
</ul>
将整个HTML置于回显中是一种不好的做法。
你应该阅读以下所有内容:
http://php.net/manual/en/control-structures.alternative-syntax.php