这个简单的PHP代码有什么作用?

时间:2010-03-11 15:08:03

标签: php wordpress

我正在浏览一个WordPress网站,并发现了这一行

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

其他人之前和之后的冒号究竟做了什么?这件事有什么作用?

3 个答案:

答案 0 :(得分:10)

该函数只有在已经声明的情况下才会执行dynamic_sidebar。冒号是PHP的alternate syntax for control structures。它们意味着在模板/视图中使用。

在这种情况下,看起来if有一个空体,它只用于调用dyanamic_sidebar(如果存在),因为如果第一个调用dynamic_sidebar(1)将不会发生布尔检查失败。

else将在其自身和<?php endif; ?>之间输出任何内容。在这种情况下,当函数dynamic_sidebar不存在或dyanmic_sidebar(1)未返回true时会触发。

答案 1 :(得分: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
  }
  ?>

答案 2 :(得分:1)

Wordpress中的dynamic_sidebar函数在调用时,将显示侧边栏,其中包含传入的编号的id(在本例中,它是一个)。代码片段将打印出侧边栏(如果它存在,并且函数dynamic_sidebar已定义),否则,它将打印出您发布的代码下方的任何内容,直到侧边栏的行。< / p>