PHP中冒号、endif、endwhile、endfor使用介绍

我们经常在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;
?>

(0)

相关推荐

  • 对python numpy数组中冒号的使用方法详解

    python中冒号实际上有两个意思:1.默认全部选择:2. 指定范围. 下面看例子 定义数组 X=array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]) 输出为5x4二维数组 第一种意思,默认全部选择: 如,X[:,0]就是取矩阵X的所有行的第0列的元素,X[:,1] 就是取所有行的第1列的元素 第二种意思,指定范围,注意这里含左不含右 如,X[:, m:n]即取矩阵X的所有行中的的第m到n-1列数据,含左不含右

  • 详谈python中冒号与逗号的区别

    注意if\while\for等(或函数定义)语句在结尾处包含一个冒号--我们通过它告诉python下面跟着一个语句块. --------------冒号的用法 if guess == number: print 'Congratulations, you guessed it.' # New block starts here print "(but you do not win any prizes!)" # New block ends here elif guess < c

  • python 列表中[ ]中冒号‘:’的作用

    中括号[ ]:用于定义列表或引用列表.数组.字符串及元组中元素位置 list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7 ] print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5] 冒号: 用于定义分片.步长. a[ : n]表示从第0个元素到第n个元素(不包括n),a[1: ] 表示该列表中的第1个元素到

  • C/C++中抽象类详解及其作用介绍

    目录 概述 抽象类 vs 具体类 案例 抽象类的作用 总结 概述 抽象类 (abstract class), 是一些不用来定义对象, 而只作为基类被继承的类. 由于抽象类常用作基类, 所以通常称为抽象基类 (abstract base class). 定义抽象类的唯一目的, 就是去建立派生类. 我们在抽象类基础上要定义出功能各异的派生类, 再用这些派生类去建立对象. 抽象类 vs 具体类 凡是包含纯虚函数的类都是抽象类. 纯虚函数不用实现, 故不能被调用, 抽象类无法建立对象. 抽象类的作用是作

  • C/C++中组合详解及其作用介绍

    目录 概述 案例 总结 概述 组合 (Composition) 指在一个类中另一类的对象作为数据成员. 案例 在平面上两点连成一条直线, 求直线的长度和直线中点的坐标. 要求: 基类: Dot 派生类: Line (同时组合) 派生类 Line 从基类 Dot 继承的 Dot 数据, 存放直线的中点坐标 Line 类再增加两个 Dot 对象, 分别存放两个端点的坐标 Dot 类: #ifndef PROJECT5_DOT_H #define PROJECT5_DOT_H #include <io

  • C/C++中多重继承详解及其作用介绍

    目录 概述 优缺点 优点 缺点 声明多重继承的方法 格式 例子 二义性 两个基类有同名成员 基类和派生类有同名成员 两个基类从同一个基类派生 概述 多重继承 (multiple inheritance): 一个派生类有两个或多个基类, 派生类从两个或多个基类中继承所需的属性. C++ 为了适应这种情况, 允许一个派生类同时继承多个基类. 这种行为称为多重继承. 优缺点 优点 自然地做到了对单继承的扩展 可以继承多个类的功能 缺点 结构复杂化 优先顺序模糊 功能冲突 声明多重继承的方法 格式 多重

  • C/C++中多态性详解及其作用介绍

    目录 概述 静态多态 函数重载 运算符重载 动态多态 非动态 动态 概述 多态性 (polymorphism) 是面向对象程序设计的一个重要特征. 利用多态性扩展设计和实现一个易于扩展的系统. C++ 中多态性: 同一函数名可以实现不同的功能 用一个函数名调用不同内容的函数完成不同的工作 静态多态 静态多态 (static polymorphism) 是通过函数的重载实现的, 包括函数的重载和运算符重载. 在程序编译时系统就能觉得调用哪个函数. 函数重载 int main() { cout <<

  • python中requests使用代理proxies方法介绍

    学习网络爬虫难免遇到使用代理的情况,下面介绍一下如何使用requests设置代理: 如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求: import requests proxies = { "http": "http://10.10.1.10:3128", "https": "http://10.10.1.10:1080", } requests.get("http://examp

  • java中String类型变量的赋值问题介绍

    运行下面这段代码,其结果是什么? package com.test; public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String[] args) { Example ex = new Example(); ex.change(ex.str, ex.ch); System.out.println(ex.str);

  • ES6中非常实用的新特性介绍

    ECMAScript 6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设"深入浅出ES6"专栏,来看一下ES6将给我们带来哪些新内容. 写在前面 ES6 已经提交给 Ecma 大会审查了,也就是说,我们将迎来一大波 javascript 的最新标准,还有一些语法糖.ES6 中有很多值得我们关注的东西,下面是我发现的一些我们最常用的一些新特性,进行记录一下. 1. for-of循环 这个东西用来循环数组很爽,原因呢,是因为它弥补了目前

随机推荐