PHP中的替代语法(转)

我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如:
<?php if(empty($GET_[‘a‘])): ?>
<font color="red">空的</font>
<?php endif; ?>
对于相当一部分PHP爱好者来说根本没见过啊,这些是什么东西呢?难道是那些博客的开发者自己搞的仿PHP的模板语言?
非也,其实这些都是PHP的语法,只不过不常用而已,这些都是PHP流程控制的替代语法。
这里就就给大家详细说一下PHP流程控制的替代语法。什么是替代语法?
简单的说就是一些语法的另类写法。

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.流程控制逻辑更清晰,代码更容易阅读
要改别人的PHP和HTML混合代码,打开发现,我擦!太TMD垃圾了!如果用替代语法,我想再垃圾的程序开发人员也不至于写的太乱吧。
3.一些从ASP等其他类basic语言家族转来的朋友,会更容易使用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;
?>
时间: 2024-10-05 21:20:59

PHP中的替代语法(转)的相关文章

PHP中的替代语法(冒号、endif、endwhile、endfor)

我们经常在wordpress一类的博客程序的模板里面看到很多奇怪的PHP语法,比如: <?php  if( empty($_GET['a]) ): ?>     <font color = "red">空的</font>     <?php endif;?> 对于相当一部分PHP爱好者来说根本没见过,这些是什么东西呢?难道是那些博客开发者自己搞的的仿PHP得模板语言? 非也,其实这些都是PHP的语法,只不过不常用而已,这些都是PHP流程控

PHP中的替代语法

今天看了一下wordpress的代码,里面有些少见的php替代语法, <?php else : ?> <div class="entry-content"> <?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'thebox' ) ); ?> <?php wp_link_pages( array( 'be

CI框架 -- 在视图文件中使用 PHP 替代语法

如果你不使用 CodeIgniter 的 模板引擎, 那么你就只能在视图文件中使用纯 PHP 语法了.为了精简视图文件, 使其更可读,建议你在写控制结构或 echo 语句时使用 PHP 的替代语法. 如果你还不熟悉这个语法,下面将介绍如何通过这个语法来消灭你代码 中的大括号和 echo 语句. 自动短标记支持 如果你发现本页所介绍的语法在你的服务器上行不通,那么有可能是 你的 PHP.ini 文件中禁用了 “短标记”.CodeIgniter 可以动态的重写 所有的短标记,这样即使你的服务器不支持

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

准备做个wordpress的主题,结果看到了如下的语法: <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <?php if ( have_posts() ) : ?> <?php if ( is_home() && ! is_

Thinkphp回顾(五)之前台模板中的基本语法

一.导入CSS和JS文件 的三种方式  (了解) 1.link方式(常规) <link rel=’stylesheet’ type=’text/css’ href=’__PUBLIC__/Js/test.css/> <script src='__PUBLIC__/Js/test.js'></script> //导入Public文件夹下面的Js目录中的test.js文件和Css文件夹下的test.css文件 2.import <import type='js' fi

浅析ios开发中Block块语法的妙用

事实上,任何一个应用的开发都离开多线程.而"块"block与GCD就是苹果OC语言中多线程的核心. 一.块的内部结构 在oc中,块语法以闭包的形式存在,每一个Objective-C对象都占据着某个内存区域.块本身也是一个对象,在存放块的对象内存区域中,首个变量是指向Class的指针,该指针叫做isa.其余内存里含有块对象正常运转所需的各种信息. 以下是块语法的内部结构变量. 1.void*                                   isa(指向class的对象

Php 的替代语法

替代语法 为什么会有替代语法: ????php是嵌入在html文档中的脚本语言,Php可以动态生成html标签,但是php主要功能并不是生成html标签,主要用于动态的生成数据(数据库中的数据).如果使用php来动态生成html标签及标签内部数据时,程序代码会显的很乱. 就是php中的流程控制的另一类写法. 哪些流程控制可以有替代语法 if.switch.for.foreach.while 替代语法的形式: 使用冒号':'代替左花括号'{',使用endif.endsiwtch.endfor.en

PHP流程控制的替代语法

准备做个wordpress的主题,结果看到了如下的语法: <div id="primary" class="content-area"><main id="main" class="site-main" role="main"><?php if ( have_posts() ) : ?><?php if ( is_home() && ! is_fro

Pandoc中的Markdown语法

.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table td, .table th { background-color: #fff !important; } .table-bordered th, .table-bordere