[英]Can someone explain this piece of PHP code?
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
如果have-posts()
是真的,那么......我不明白的布局:
。
有兩種方法可以用PHP編寫復合語句,例如if
和while
主體。 您可以用{ ... }
包圍身體:
while (condition) {
body
}
或者您可以使用:
和endXXX
語句:
while (condition) :
body
endwhile;
您的代碼使用第二種形式。 與主體中的<?php ... ?>
混合使用時,這是一種非常常見的樣式,因此該塊的結尾比以下內容更突出:
<?php } ?>
這些功能是Wordpress允許您操作存儲在數據庫中的帖子的方式。
使用:
只是一種替代語法,使用:
替換while
花括號。
http://codex.wordpress.org/The_Loop_in_Action
- 首先,它使用has_posts()函數檢查是否發現了任何帖子。
- 如果有任何帖子,則啟動一個PHP while循環。 只要括號中的條件在邏輯上為真,while循環將繼續執行。 因此,只要函數have_posts()返回一個真值,while循環就將繼續循環(重復)。
http://php.net/manual/en/control-structures.alternative-syntax.php
PHP提供了一些控制結構的替代語法。 即,是否,for,foreach和switch。 在每種情況下,替代語法的基本形式都是將左大括號更改為冒號(:),將右大括號更改為endif;,endwhile;,endfor;,endforeach;或endswitch;。
這是使用的braceless替代語法while
: http://php.net/manual/en/control-structures.while.php
因此,上面的代碼與此相同:
if ( have_posts() ) {
while ( have_posts() ){
the_post();
the_content();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.