我试图使用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中?
发布于 2014-08-07 20:42:07
您的预见是没有意义的,您肯定应该阅读更多关于数组和循环的内容。
如果要在每一行上打印整个数组两次,则应该在循环当前状态下打印实际元素。
至于您打印的issue...stop打印then....do,如下所示:
<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
发布于 2014-08-07 20:42:07
您正在尝试使用数组输出值。$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);
}发布于 2014-08-07 20:43:33
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>";
}https://stackoverflow.com/questions/25191746
复制相似问题