您的位置:首页 > 编程语言 > PHP开发

PHP流程控制中不经常使用的替代语法

2016-02-29 16:22 746 查看
准备做个wordpress的主题。结果看到了例如以下的语法:

<div id="primary" class="content-area">

<main id="main" class="site-main" role="main">

<?php if ( have_posts() ) : ?>

<?

php if ( is_home() && ! is_front_page() ) : ?>

<header>

<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>

</header>

<?php endif; ?

>

<?php

// Start the loop.

while ( have_posts() ) : the_post();

/*

* Include the Post-Format-specific template for the content.

* If you want to override this in a child theme, then include a file

* called content-___.php (where ___ is the Post Format name) and that will be used instead.

*/

get_template_part( 'content', get_post_format() );

// End the loop.

endwhile;

// Previous/next page navigation.

the_posts_pagination( array(

'prev_text'          => __( 'Previous page', 'twentyfifteen' ),

'next_text'          => __( 'Next page', 'twentyfifteen' ),

'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyfifteen' ) . ' </span>',

) );

// If no content, include the "No posts found" template.

else :

get_template_part( 'content', 'none' );

endif;

?>

</main><!-- .site-main -->

</div><!-- .content-area -->


这才知道php是有不太经常使用的替代语法的: 据
/article/1269621.html

PHP中那些语法有替代语法?

流程控制(包含if,while,forforeach,switch)这几个语句有替代语法。

替代语法的基本形式:

左花括号({)换成冒号(:),把右花括号(})分别换成 endif;。endwhile;,endfor;,endforeach; 以及 endswitch;

举个样例吧:

复制代码代码例如以下:

<?php if ($a<0): ?>

是负数拉

<?php endif; ?>

上面的语句等同于

<?

php if ($a<0){ ?>

是负数拉

<?php } ?>

为什么纯PHP代码里面差点儿看不到?

这些语法有点不符合C家族的传统有点另类,大家不大习惯于这样的语法,并且不是非常方便

大家都不习惯,并且这么另类要他有什么用?蛋疼吗?

存在就是合理,它自有它的用处,这些语法能发挥的地方是在PHP和HTML混合页面的代码里面。优点例如以下:

1.使HTML和PHP混合页面代码更加干净整齐。

有代码洁癖的朋友最惧怕的就是乱七八糟的混合代码,有了这些没有花括号的替代语法,各位爱干净的朋友开心到尿震。

2.流程控制逻辑更清晰。代码更easy阅读

要改别人的PHP和HTML混合代码。打开发现,我擦!太TMD垃圾了!假设用替代语法。我想再垃圾的程序开发者也不至于写的太乱吧。

3.一些从ASP等其它类basic语言家族转来的朋友,会更easy使用PHP。

讲半天无用的。捞点干的行不?这东西怎么用?

依据之前描写叙述的用法。if语句的替代语法使用例如以下:

复制代码代码例如以下:

<?php if ($a == 5): ?>

<div>等于5</div>

<?

php elseif ($a == 6): ?>

<div>等于5</div>

<?php else: ?

>

<div>不是5就是6</div>

<?

php endif; ?>

while替代语法:

复制代码代码例如以下:

<?php while (expr): ?>

<li>循环点什么</li>

<?php endwhile; ?>

for替代语法:

复制代码代码例如以下:

<?php for (expr1; expr2; expr3): ?

>

<li>循环点什么</li>

<?php endfor; ?>

foreach替代语法:

复制代码代码例如以下:

<?

php foreach (expr1): ?>

<li>循环点什么</li>

<?

php endforeach; ?

>

switch替代语法:

复制代码代码例如以下:

<?php

switch ($i):

case 0:

echo "i equals 0";

break;

case 1:

echo "i equals 1";

break;

case 2:

echo "i equals 2";

break;

default:

echo "i is not equal to 0, 1 or 2";

endswitch;

?

>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: