2014-11-02 125 views
1
<?php if (have_posts()) while (have_posts()) : the_post(); ?> 
    <?php the_content(); ?> 
    <?php endwhile; ?> 

如果have-posts()为真,那么......我不明白:的位置。有人可以解释这段PHP代码吗?

+0

你有一本PHP编程书吗?我敢打赌,它解释了控制流程语句章节中':'的位置。 – Barmar 2014-11-02 02:56:38

+0

我发现有多少重复数据与这种* alternate *语法有关。以下是许多http://stackoverflow.com/q/5752515/搜索您的代码之一。 – 2014-11-02 02:59:28

+0

@ Fred-ii-我同意可能有这样的错误,遗憾的是,OP不知道术语“* alternate syntax *”已经被搜索到了。虽然,你链接的那个不是一个骗局。不同的问题范围和没有答案涵盖了这个问题。 – James 2014-11-02 03:15:03

回答

3

有两种方法可以在PHP中编写复合语句,如ifwhile正文。您可以围绕主体与{ ... }

while (condition) { 
    body 
} 

,或者您可以使用:endXXX声明:

while (condition) : 
    body 
endwhile; 

代码使用第二种形式。这是当与<?php ... ?>主体内混合的很常见的样式,以使得该块的端部突出超过:

<?php } ?> 
+0

您的回答更完整=)+1 – Saikios 2014-11-02 02:56:35

1

的功能是WordPress的是如何让您操作存储在数据库中的职位。

:只是一种替代语法,:替换while中的花括号。

http://codex.wordpress.org/The_Loop_in_Action

  1. 首先,它会检查任何职位是否与 have_posts()函数发现。
  2. 如果有任何帖子,则启动一个PHP while循环。一个while循环 将继续执行,只要括号 中的条件在逻辑上为真。所以,只要函数have_posts()返回一个真实值 ,while循环将保持循环(重复)。

http://php.net/manual/en/control-structures.alternative-syntax.php

PHP提供了一种替代语法一些它的控制结构; 即,if,while,for,foreach和switch。在每一种情况下,基本 形式替代语法的是分别与开口括号更改为冒号 (:)和闭括号到ENDIF ;, ENDWHILE ;, ENDFOR ;, endforeach ;, 或endswitch ;,。

+1

+1用于引用手册。 – Barmar 2014-11-02 02:58:08

相关问题