Что делает этот простой PHP-код? - PullRequest
4 голосов
/ 11 марта 2010

Я просматривал сайт 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 ]

10 голосов
/ 11 марта 2010

Эта функция будет выполняться только dynamic_sidebar, если она уже объявлена. Двоеточие - это альтернативный синтаксис PHP для управляющих структур . Они предназначены для использования в шаблонах / представлениях.

В этом случае, похоже, что if имеет пустое тело, и он используется только для вызова dyanamic_sidebar, если он существует, так как вызов dynamic_sidebar(1) не произойдет, если первая логическая проверка не удалась

else выведет что-нибудь между собой и <?php endif; ?>. В этом случае он срабатывает, когда функция dynamic_sidebar не существует или dyanmic_sidebar(1) не возвращает true.

4 голосов
/ 11 марта 2010

Это альтернативный синтаксис для структуры управления .

Это означает:

 <?php 
  if (function_exists('dynamic_sidebar') && dynamic_sidebar(1)) {
  } else {
 ?>
    <li id="recent-posts">
       <ul>
        <?php get_archives('postbypost', 5); ?>
       <ul>
    </li>
 <?php
  }
  ?>
1 голос
/ 11 марта 2010

Функция dynamic_sidebar в Wordpress, при вызове, будет отображать боковую панель с идентификатором переданного числа (в данном случае это единица). Фрагмент кода распечатает эту боковую панель (если она существует и определена функция dynamic_sidebar), в противном случае он распечатает все, что находится под кодом, который вы разместили, вплоть до строки на месте боковой панели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...