我是php的新手,我正在尝试创建一个简单的代码,在“while”循环的最后一个元素的开头打印一个“last”类。循环中只有两个项目(博客摘录)因此我为什么尝试下面的if($ i == 1)...感谢您的帮助。
这是我到目前为止的代码 - 只返回p
<?php
$i = 0;
if($i == 1) {
echo '<p class="last">';
}
else {
echo '<p>';
}
?>
编辑:
感谢您的帮助。非常感谢 - 我在下面提供了更多信息(我在深夜发布,所以我意识到我没有那么清楚)。
这是我想写的完整代码。它正在从Wordpress中提取博客摘录 - 目前仅限于2篇博客文章。
<?php
$posts = new WP_Query('showposts=2');
while ( $posts->have_posts() ) : $posts->the_post();
?>
<p><a href="<?php echo get_permalink(); ?>"><?php echo the_title(); ?></a><br/>
<?php echo substr(get_the_excerpt(), 0,200); ?>... <a href="<?php echo get_permalink(); ?>">Read More</a></p>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
我想在第5行的开头将“last”类添加到p中 - 除了最后一个博客。
再次感谢。
答案 0 :(得分:1)
尼克的回答说几乎所有这些都需要说。 我唯一可以添加的是保存重复的轻微变化,特别是如果段落标记的内容更复杂。
对Nick的代码进行以下调整可能会更好:
<style>
#contents p:last-child {
PUT CONTENTS OF CLASS HERE
}
</style>
<body>
<div id="#contents">
<?php
$numLoops = 2;
$ctext=""
for($i=0; $i<$numLoops; $i++) {
$info="whatever";
if($i == (numLoops-1)) {
$ctext=' class="last"';
}
echo "<p${ctext}>${info}</p>\n";
}
?>
</div>
</body>
干杯
答案 1 :(得分:0)
所以你有两个段落,并且你想将“last”类应用到最后一个?使用CSS
可以更好地处理这种情况<style>
#contents p:last-child {
PUT CONTENTS OF CLASS HERE
}
</style>
<body>
<div id="#contents">
<p> first info</p>
<p> last info </p>
</div>
</body>
如果您想了解循环
<?php
$numLoops = 2;
for($i=0; $i<$numLoops; $i++) {
if($i == (numLoops-1)) {
echo '<p class="last">';
} else {
echo '<p>';
}
}
我们在这里用for循环做的是最初设置变量$ i = 0;然后设置一个测试,说明只要变量小于我们想要做的循环次数就保持循环。接下来我们设置每个循环的操作,在这种情况下,我们每次都将变量增加1。
第一次循环
i=0, we see that 0 is < 2 so we continue
第二次循环
We execute the $i++ so we increment $i by 1 from 0 to $i=1,
we test and see $i=1 is still less than 2 so we continue.
第三次尝试循环
We increment $i by 1 and get $i=2.
We test to see if this is less than 2, but it is NOT so we do not execute code in the loop
主要问题是你的代码中没有循环,如果你没有循环你的变量$ i