【发布时间】:2014-12-18 15:19:57
【问题描述】:
我想在 PHP if 语句中使用 PHP 回显作为条件。
目的是让 John Doe 撰写的博客文章列表显示在他的传记页面上。
我在if条件中直接写了作者的名字就成功了:
<!-- 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>
但我想自动化这个过程,让每个作家的传记页面都有自己的文章列表。
我试图以当前传记页面($page)的作者为条件:
<!-- 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>
但它带来了另一个问题:它不起作用,因为在 foreach 语句中,$page->author()(if 语句中的条件)不会回显作者一次,而是每个@987654324 回显一次@。
条件if($article->author() == $page->author()) 在这种情况下不起作用,因为$page->author() 并不是严格意义上的作者姓名。
我想知道如何在 foreach 语句中调用 $page->author() 以仅回显作者的姓名一次。
【问题讨论】:
-
我建议你在foreach和if语句之间回显文章作者和页面作者,看看值是否相似。这是比较的正确方法: $article->author() == $page->author()) 不是你的回声方式
-
PHP 不可递归嵌入,嵌入在 php 字符串中的 php 代码不会被执行。
-
尝试呼应您的文章作者以确定它是否定义明确。
-
@Raoulito,
page('magazine')是什么,为什么它没有以$作为数组/对象变量预置,它是否被$page->author()包裹起来? -
我在下面提供了一个工作示例,假设我正确解释了您的数据。
标签: php if-statement echo