<?php if (have_posts()) while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
如果have-posts()
为真,那么......我不明白:
的位置。有人可以解释这段PHP代码吗?
<?php if (have_posts()) while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
如果have-posts()
为真,那么......我不明白:
的位置。有人可以解释这段PHP代码吗?
有两种方法可以在PHP中编写复合语句,如if
和while
正文。您可以围绕主体与{ ... }
:
while (condition) {
body
}
,或者您可以使用:
和endXXX
声明:
while (condition) :
body
endwhile;
代码使用第二种形式。这是当与<?php ... ?>
主体内混合的很常见的样式,以使得该块的端部突出超过:
<?php } ?>
您的回答更完整=)+1 – Saikios 2014-11-02 02:56:35
这是使用的while
的braceless替代语法:http://php.net/manual/en/control-structures.while.php
因此,上面的代码做同样的,因为这:
if (have_posts()) {
while (have_posts()){
the_post();
the_content();
}
}
的功能是WordPress的是如何让您操作存储在数据库中的职位。
:
只是一种替代语法,:
替换while
中的花括号。
http://codex.wordpress.org/The_Loop_in_Action
- 首先,它会检查任何职位是否与 have_posts()函数发现。
- 如果有任何帖子,则启动一个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用于引用手册。 – Barmar 2014-11-02 02:58:08
你有一本PHP编程书吗?我敢打赌,它解释了控制流程语句章节中':'的位置。 – Barmar 2014-11-02 02:56:38
我发现有多少重复数据与这种* alternate *语法有关。以下是许多http://stackoverflow.com/q/5752515/搜索您的代码之一。 – 2014-11-02 02:59:28
@ Fred-ii-我同意可能有这样的错误,遗憾的是,OP不知道术语“* alternate syntax *”已经被搜索到了。虽然,你链接的那个不是一个骗局。不同的问题范围和没有答案涵盖了这个问题。 – James 2014-11-02 03:15:03