簡體   English   中英

有人可以解釋這段PHP代碼嗎?

[英]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編寫復合語句,例如ifwhile主體。 您可以用{ ... }包圍身體:

while (condition) {
    body
}

或者您可以使用:endXXX語句:

while (condition) :
    body
endwhile;

您的代碼使用第二種形式。 與主體中的<?php ... ?>混合使用時,這是一種非常常見的樣式,因此該塊的結尾比以下內容更突出:

<?php } ?>

這些功能是Wordpress允許您操作存儲在數據庫中的帖子的方式。

使用:只是一種替代語法,使用:替換while花括號。

http://codex.wordpress.org/The_Loop_in_Action

  1. 首先,它使用has_posts()函數檢查是否發現了任何帖子。
  2. 如果有任何帖子,則啟動一個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替代語法whilehttp://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM