PHP if条件在PHP foreach语句中不再起作用
当if语句位于foreach语句中时,if语句中的一个条件不再起作用。我知道问题来自何方,但不知道如何解决: 目的是让约翰·多伊写的博客文章列表显示在他的传记页面上 当我在if条件下直接写下作者的名字时,它起作用了:PHP if条件在PHP foreach语句中不再起作用,php,if-statement,foreach,Php,If Statement,Foreach,当if语句位于foreach语句中时,if语句中的一个条件不再起作用。我知道问题来自何方,但不知道如何解决: 目的是让约翰·多伊写的博客文章列表显示在他的传记页面上 当我在if条件下直接写下作者的名字时,它起作用了: 但我想自动化这个过程,让每个作家的传记页面都有自己的文章列表 我试图以当前传记页($page)的作者为条件: 但它也带来了另一个问题:它不起作用,因为在foreach语句中,$page->author()(if语句中的条件)不会将author作为$article对每个页
但我想自动化这个过程,让每个作家的传记页面都有自己的文章列表
我试图以当前传记页($page)的作者为条件:
但它也带来了另一个问题:它不起作用,因为在foreach语句中,$page->author()
(if语句中的条件)不会将author作为$article对每个页面('magage')->children()进行一次回显
如果($article->author()==$page->author())
条件在本例中不起作用,因为严格来说,$page->author()
不是作者的名字
我想知道如何调用
$page->author()
,在foreach语句中只回显一次作者的名字。通常这个endif
有一个代码>在末尾,如:endif
(对于foreach和echo语句也是如此)请参见:$page->author()
的实现是什么?听起来这就是你的问题所在。我猜你在那里有一个循环…?什么是页面(“杂志”)和$page。$page->author()
是Kirby CMS方法,它回送页面的作者(存储为文本文件),并且$page
允许回送不同的元素,例如$page->title()
或$page->children()
@Rizier123,
是绝对不必要的,因为?>
具有同等的效果。
<!-- current page: biography page -->
<div id="list_of_articles_by_John_Doe">
<?php foreach(page('magazine')->children() as $article): ?>
<?php if($article->author() == 'John Doe'): ?>
<p><?php echo $article->title() ?></p>
<?php endif ?>
<?php endforeach ?>
</div>
<!-- current page: biography page -->
<div id="automatic_list_of_articles">
<?php foreach(page('magazine')->children() as $article): ?>
<?php if($article->author() == $page->author()): ?>
<p><?php echo $article->title() ?></p>
<?php endif ?>
<?php endforeach ?>
</div>