Альтернативный синтаксис управляющих структур
PHP предлагает альтернативный синтаксис для некоторых его управляющих структур, а именно: if, while, for, foreach, switch, else, elseif. В каждом случае основной формой альтернативного синтаксиса является изменение открывающей фигурной скобки { на двоеточие :, а закрывающей скобки на endif; endwhile; endfor; endforeach; endswitch; соответственно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php if ( have_posts() ) { if ( is_home() && ! is_front_page() ) { ?> <header> <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1> </header> <?php } /* Start the Loop */ while ( have_posts() ) { the_post(); get_template_part( 'template-parts/content', get_post_type() ); } the_posts_navigation(); }else { get_template_part( 'template-parts/content', 'none' ); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<? if ( have_posts() ) : if ( is_home() && ! is_front_page() ) : ?> <header> <h1 class="page-title screen-reader-text"><? single_post_title(); ?></h1> </header> <? endif; /* Start the Loop */ while ( have_posts() ) : the_post(); get_template_part( 'template-parts/content', get_post_type() ); endwhile; the_posts_navigation(); else : get_template_part( 'template-parts/content', 'none' ); endif; ?> |
Внимание
Любой вывод (включая пробельные символы) между выражением switch
и первым case
приведут к синтаксической ошибке.
1 2 3 4 5 6 |
<?php switch ($foo): ?> <?php case 1: ?> ... <?php endswitch ?> // Данный код не будет работать |
1 2 3 4 5 6 |
<?php switch ($foo): ?> <?php case 1: ?> ... <?php endswitch ?> //Этот будет работать, так как завершающий перевод строки после выражения switch считается частью закрывающего ?> и следовательно ничего не выводится между switch и case |
Замечание:
Смешивание синтаксиса в одном и том же блоке управления не поддерживается.