Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP if条件在PHP foreach语句中不再起作用_Php_If Statement_Foreach - Fatal编程技术网

PHP if条件在PHP foreach语句中不再起作用

PHP if条件在PHP foreach语句中不再起作用,php,if-statement,foreach,Php,If Statement,Foreach,当if语句位于foreach语句中时,if语句中的一个条件不再起作用。我知道问题来自何方,但不知道如何解决: 目的是让约翰·多伊写的博客文章列表显示在他的传记页面上 当我在if条件下直接写下作者的名字时,它起作用了: 但我想自动化这个过程,让每个作家的传记页面都有自己的文章列表 我试图以当前传记页($page)的作者为条件: 但它也带来了另一个问题:它不起作用,因为在foreach语句中,$page->author()(if语句中的条件)不会将author作为$article对每个页

当if语句位于foreach语句中时,if语句中的一个条件不再起作用。我知道问题来自何方,但不知道如何解决:

目的是让约翰·多伊写的博客文章列表显示在他的传记页面上

当我在if条件下直接写下作者的名字时,它起作用了:


但我想自动化这个过程,让每个作家的传记页面都有自己的文章列表

我试图以当前传记页($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>