PHP控制语句

1、IF语句

IF语句是多数语言中的一个重要特点,它根据条件执行程序段。PHP的IF语句类似于 C:

if (expr)

statement

正如在表达式中所论述, expr 被计算为它的真值。如果 expr 为TRUE, PHP执行相应语句, 如果为FALSE 则忽略它。

如果$a 大于 $b,下例将显示 ’a is bigger than b’:

if ($a >$b)

print "a is bigger than b";

通常,你希望根据条件执行多于一条语句。当然,不需要给每条语句都加上 IF 判断。取而代之,可以把多条语句组成一个语句组。

If语句可以嵌套于其他 IF语句中,使你能够灵活地有条件的执行程序的各个部分。

2、 ELSE语句

通常你希望满足特定条件时执行一条语句,不满足条件是执行另一条语句。ELSE就是用来做这个的。ELSE 扩展IF语句,在IF语句表达式为 FALSE时执行另一条语句。例如, 下面程序执行如果 $a 大于 $b则显示 ’a is bigger than b’,否则显示 ’a is NOT bigger than b’:

if ($a>$b) {

print "a is bigger than b";

}

else {

print "a is NOT bigger than b";

}

3、 ELSEIF语句

ELSEIF,就象名字所示,是IF和ELSE的组合,类似于 ELSE,它扩展 IF 语句在IF表达式为 FALSE时执行其他的语句。但与ELSE不同,它只在ELSEIF表达式也为TRUE时执行其他语句。

可以在一条IF语句中使用多条ELSEIF语句。第一个ELSEIF表达式为TRUE的语句将被执行。在PHP 3中,你也可以写成 ’else if’ (写成两个单词)和 ’elseif’ (写成一个单词)效果一样。这只是写法上的细小差别(如果你熟悉 C,它也是),结果是完全一样的。

ELSEIF语句仅在IF表达式和任何前面的ELSEIF表达式都为FALSE,且当前ELSEIF表达式为TRUE时执行。

下面是一个含有ELSEIF和ELSE的嵌套格式的IF语句:

if ($a==5):

print "a equals 5";

print "...";

elseif ($a==6):

print "a equals 6";

print "!!!";

else:

print "a is neither 5 nor 6";

endif;

4、 WHILE语句

WHILE循环是PHP 3的一种简单的循环。象在 C 中一样。WHILE语句的基本格式是:

WHILE(expr) statement

WHILE语句的意思非常简单。它告诉PHP只要WHILE表达式为TRUE就重复执行嵌套的语句。每次循环开始时检查WHILE表达式的值,所以即使在嵌套语句内改变了它的值,本次执行也不会终止,而直到循环结束(每次PHP运行嵌套的语句称为一次循环)。类似于IF语句,你可以用大括号把一组语句括起来,在同一个WHILE循环中执行多条语句:

WHILE(expr): statement ... ENDWHILE;

下面例子完全相同, 都打出数字 1 到 10:

/* example 1 */

$i=1;

while ($i0);

上面循环只执行一次, 因为第一次循环后,当检查真值表达式时, 它算出来是 FALSE ($i 不大于 0)循环执行终止。

6、 FOR循环语句

FOR循环是PHP中最复杂的循环。象在 C 中一样。 FOR循环的语法是:

FOR (expr1; expr2; expr3) statement

第一个表达式(expr1)在循环开始时无条件的计算(执行)。

每一次循环, 表达式 expr2 都被计算。如果结果为 TRUE, 则循环和嵌套的语句继续执行。如果结果为 FALSE,则整个循环结 束。

每次循环结束时, expr3 被计算(执行). 每一个表达式都可为空。expr2 为空则循环的次数不定(PHP 默认它为TRUE,象C一样)。除非你要通过一个条件的 BREAK语句代替FOR 的真值表达式来结束循环,否则不要这样。

考虑下面例子。它们都显示数字 1 到 10:

/* example 1 */

for ($i=1; $i10) {

break;

}

print $i;

}

/* example 3 */

$i = 1;

for (;;) {

if ($i >10) {

break;

}

print $i;

$i++;

}

当然,第一个例子显然是最好的,但借此你可以发现在FOR 循环中很多场合可以使用空的表达式。

其他的语言有一条foreach语句用来遍历一个数组或哈希(hash)表。PHP使用while语句和 list()、each() 函数来达到这个功能。

7、 SWITCH选择语句

SWITCH语句就象是对同一个表达式的一系列IF语句。在很多时侯,你想把同一个变量(或者表达式)和许多不同的值去比较 ,并根据不同的比较结果执行不同的程序段。这就是 SWITCH语句的用处了。

下面两个例子通过不同的方法做同一件事,一个用一组 IF语句,另外一个用 SWITCH 语句:

/* example 1 */

if ($i == 0) {

print "i equals 0";

}

if ($i == 1) {

print "i equals 1";

}

if ($i == 2) {

print "i equals 2";

}

/* example 2 */

switch ($i) {

case 0:

print "i equals 0";

break;

case 1:

print "i equals 1";

break;

case 2:

print "i equals 2";

break;

}

(二)、REQUIRE语句

REQUIRE语句用指定的文件代替自己,很象 C 中的预处理 #include 。

这意味着你不能为了每次调用该函数来包含不同文件的内容,而把require()语句放在一个循环结构,。要这么做,使用 INCLUDE 语句。

require(’header.inc’);

(三)、 INCLUDE语句

INCLUDE语句包含指定的文件。

每次遇到INCLUDE是INCLUDE语句就包含指定的文件。所以你可以在一个循环结构中使用INCLUDE语句以包含一系列不同的文件。

$files = array(’first.inc’, ’second.inc’, ’third.inc’);

for ($i = 0; $i items[$artnr] += $num;

}

// Take $num articles of $artnr out of the cart

function remove_item($artnr, $num) {

if ($this->items[$artnr] >$num) {

$this->items[$artnr] -= $num;

return true;

} else {

return false;

}

}

}

?>

上面定义了一个叫Cart 的类,其中包括一个关联数组和两个用来从cart中增加和删除项目的函数。

类是实际变量的原始模型。你要通过new 操作符来建立一个所需类型的变量。

$cart = new Cart;

$cart->add_item("10", 1);

这建立起一个 Cart类的对象$cart。该对象的函数add_item()被调用来给第10项加 1。

类可以从其他的类扩充得到。扩充或派生出来的类拥有基类的所有变量和函数及你在扩充定义中所定义的东西。这要使用 extends 关键字。

class Named_Cart extends Cart {

var $owner;

function set_owner($name) {

$this->owner = $name;

}

}

这里定义了一个名为 Named_Cart 的类它继承了 Cart类所有变量和函数并增加了一个变量 $owner和一个函数 set_owner()。 你建立的 named_cart 类的变量现在就能设置carts 的 owner了。在named_cart变量中你仍然可以使用一般的 cart函数:

$ncart = new Named_Cart; // Create a named cart

$ncart->set_owner("kris"); // Name that cart

print $ncart->owner; // print the cart owners name

$ncart->add_item("10", 1); // (inherited functionality from cart)

函数中的变量 $this 意思是当前的对象。你需要使用 $this->something 的形式来存取所有当前对象的变量或函数。

类中的构造器是你建立某种类的新变量时自动被调用的函数。类中和类名一样的函数就是构造器。

class Auto_Cart extends Cart {

function Auto_Cart() {

$this->add_item("10", 1);

}

}

这里定义一个类 Auto_Cart ,它给 Cart类加了一个每次new操作时设置项目10进行变量初始化的构造器。构造器也可以有参数,这些参数是可选的,这种特点也使得其十分有用。

class Constructor_Cart {

function Constructor_Cart($item = "10", $num = 1) {

$this->add_item($item, $num);

}

}

// Shop the same old boring stuff.

$default_cart = new Constructor_Cart;

// Shop for real...

$different_cart = new Constructor_Cart("20", 17);

原文:http://blog.csdn.net/u011511429/article/details/36891543

php流程控制语句,php学习之道:php 流程控制语句相关推荐

  1. [学习之道] 修福不修慧,大象披璎珞; 修慧不修福,罗汉托空钵 (学习写程序,只靠补习上课吗?)...

    这是我的备份,原文请看 http://www.dotblogs.com.tw/mis2000lab/archive/2014/09/17/learning-and_do-it_20140917.asp ...

  2. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制

    当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...

  3. APP开发流程实例讲解-儒释道网络电台八天开发全程-项目发起

    APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 APP开发流程实例讲解-儒释道网络电台八天开发全程 项目发起 功能和界面初步设定 在Android Studio中完成界面设计 实现功能代 ...

  4. 学习ui设计的流程是什么

    UI设计在如今的市场行情中是很多企业都必不可少的一个技术岗位,UI设计是比较注重自身产品的用户体验的,想要学习UI设计,一定要做足功课,下面小编就为大家详细的介绍一下学习ui设计的流程是什么? 学习u ...

  5. 一文搞定深度学习建模预测全流程(Python)

    作者 | 泳鱼 来源 | 算法进阶 本文详细地梳理及实现了深度学习模型构建及预测的全流程,代码示例基于python及神经网络库keras,通过设计一个深度神经网络模型做波士顿房价预测.主要依赖的Pyt ...

  6. ZYNQ学习(1) —— 基础开发流程

    ZYNQ学习(1) -- 基础开发流程 1. 现在PlanAhead中新建一个工程 2. 添加嵌入式内核,进入EDK中配置内核(导入XML模板,添加模块,设置端口等) 3. 回到PlanAhead生成 ...

  7. app开发学习需要经历哪些流程

    app开发学习需要经历哪些流程?如何零基础入门app开发?以下是知乎热心开发者的经验总结,对学习app开发有很好的参考意义 1.如果没有编程基础的,学习基础知识的过程肯定是必须的. 2.有了一些基础之 ...

  8. ASP.NET Core MVC 源码学习:MVC 启动流程详解

    前言 在 上一篇 文章中,我们学习了 ASP.NET Core MVC 的路由模块,那么在本篇文章中,主要是对 ASP.NET Core MVC 启动流程的一个学习. ASP.NET Core 是新一 ...

  9. 《React 学习之道》The Road to learn React (简体中文版)

    通往 React 实战大师之旅:掌握 React 最简单,且最实用的教程. 前言 <React 学习之道>这本书使用路线图中的精华部分用于传授 React,并将其融入一个独具吸引力的真实世 ...

最新文章

  1. LuaLuaMemorySnapshotDump-master
  2. cmake 编译选项 add_compile_options CMAKE_CXX_FLAGS 区别
  3. Django【进阶篇 】
  4. 【转载保存】在python中如何用word2vec来计算句子的相似度
  5. 判读一个对象不为空_“人不为己,天诛地灭”的真实含义
  6. 【测试】用例设计思路-输入框类型功能
  7. Git之同一台电脑如何连接多个远程仓库
  8. vue 判断两对象是否一致_vue - 比较两个Json对象是否相等
  9. 调用微信公众号API,实现主动给粉丝发送消息
  10. 【数字信号调制】基于matlab 16QAM信号调制解调【含Matlab源码 2050期】
  11. fiddler 抓包下载钉钉直播回放
  12. 人工智能该如何学习?详细的AI学习路线与资料推荐
  13. BZOJ 1260涂色 paint
  14. 小学生计算机知识技能竞赛,2016年春季小学生六项技能竞赛计算机试卷.doc
  15. over partition by ... order by ...用法汇总
  16. VI设计中系统视觉基本要素优漫动游
  17. idea debug报错无法调试 Disconnected from the target VM
  18. stc15w404as引脚图_怎么把STC15W404AS的EEPROM读写
  19. linux usb驱动——OTG数据线与普通数据线区别
  20. 外包公司到底值不值得去?

热门文章

  1. vs2010项目属性配置
  2. iOS13后添加SceneDelegate初始化window
  3. 树莓派3B+运行arm_computer_library
  4. c语言ascw,VBS中的Asc/AscB/AscW和Chr/ChrB/ChrW函数之间的区别
  5. java删除通用方法_一个比较通用的java删除文件和文件夹的方法
  6. kafka时间轮linux时间轮,Kafka解惑之时间轮 (TimingWheel)
  7. creatdep oracle_Oracle数据库自带表
  8. Swift--字符串和字符(一)
  9. DeepLink唤醒App的简单实现方法
  10. dubbo(provider,consumer)点到点直连配置