2010-03-11 74 views
4

我在瀏覽一個WordPress站點,並看準了這一行這個簡單的PHP代碼是做什麼的?

<?php if (function_exists('dynamic_sidebar') && dynamic_sidebar(1)) : else : ?> 
    <li id="recent-posts"> 
     <ul> 
      <?php get_archives('postbypost', 5); ?> 
     <ul> 
    </li> 
<?php endif; ?> 

做什麼冒號之前和之後其他究竟做什麼?這個東西是如何工作的?

回答

10

如果函數已經聲明,該函數將只執行dynamic_sidebar。冒號是PHP的alternate syntax for control structures。它們旨在用於模板/視圖。

在這種情況下,它看起來像if有一個空的機構,它只是用來打電話dyanamic_sidebar如果它存在,因爲調用dynamic_sidebar(1)如果第一個布爾檢查失敗將不會發生。

else將在其本身和<?php endif; ?>之間輸出任何東西。在這種情況下,當功能dynamic_sidebar不存在或者dyanmic_sidebar(1)不返回true時會觸發。

+0

你是對的。我更新了代碼。 – detj 2010-03-11 15:14:51

4

這是一個alternative Syntax for control structure

這意味着:

<?php 
    if (function_exists('dynamic_sidebar') && dynamic_sidebar(1)) { 
    } else { 
?> 
    <li id="recent-posts"> 
     <ul> 
     <?php get_archives('postbypost', 5); ?> 
     <ul> 
    </li> 
<?php 
    } 
    ?> 
1

在WordPress中dynamic_sidebar函數被調用時,將顯示側邊欄與在(在這種情況下,它是一個)傳遞的數目的標識。代碼片段將打印出側邊欄(如果存在,並且函數dynamic_sidebar已定義),否則,它將打印出您所發佈的代碼以下的任何內容,直到邊欄中的代碼行。