PHP / Smarty - 识别一个空的" foreach"

时间:2015-02-07 22:03:22

标签: php smarty

这是我目前的代码:

{php} foreach($result as $key=>$value)

{ echo "<div class='internalpadding'>";

{/php}

This is a test.

{php} } {/php}

此代码显示“这是一个测试”。连续的特定次数 - 用户在数据库中拥有的每个帖子一次。那部分工作得很好。

但是,如果用户没有帖子,则根本不显示任何内容。这是有道理的,因为它应该只显示存在的帖子的文本。但有没有一种方法可以让它给出一些类型的消息,例如“如果没有使用foreach发现任何内容,则该用户没有帖子?”

3 个答案:

答案 0 :(得分:0)

if ($result == null)
 echo "There are no posts for this user" ;
else {
       foreach($result as $key=>$value)

         { echo "<div class='internalpadding'>";
           echo "This is a test" ; }
}

答案 1 :(得分:0)

{if $result|@count == 0}
 There are no posts for this user
{else}
  {foreach from=$result item=$post}
    <h2>{$post->title}</h2>
    <p>{$post->text}</p>
  {/foreach}
{/if}

为什么不使用聪明的

答案 2 :(得分:0)

使用 {foreachelse}

{foreach $result as $post}
    <h2>{$post->title}</h2>
    <p>{$post->text}</p>
{foreachelse}
    There are no posts for this user
{/foreach}

官方文档: https://www.smarty.net/docsv2/en/language.function.foreach.tpl