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


Posted in PHP onApril 28, 2010

我们经常在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; 
?>
PHP 相关文章推荐
php面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
Nov 29 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
php生成唯一的订单函数分享
Feb 02 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
Mar 13 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
Laravel 自带的Auth验证登录方法
Sep 30 PHP
PHP 文件上传全攻略
Apr 28 #PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 #PHP
PHP 开发环境配置(测试开发环境)
Apr 28 #PHP
PHP 开发环境配置(Zend Studio)
Apr 28 #PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 #PHP
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 #PHP
PHP PDO函数库详解
Apr 27 #PHP
You might like
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
python中partial()基础用法说明
2018/12/30 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
领导班子三严三实对照检查材料
2014/09/25 职场文书
检讨书模板
2015/01/29 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
个人催款函范文
2015/06/23 职场文书
银行工作心得体会范文
2016/01/23 职场文书
委托书范本格式
2019/04/18 职场文书