php的控制语句

更新时间:2006年10月09日 00:00:00   作者:

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 ($i<=10) {

print $i++; /* the printed value would be $i before the increment (post-

increment) */

}

/* example 2 */

$i=1;

while ($i<=10):

print $i;

$i++;

endwhile;

5、DO..WHILE语句

DO..WHILE 非常类似于 WHILE 循环, 只是它在每次循环结束时检查表达式是否为真,而不是在循环开始时。 它和严格的WHILE循环的主要区别是DO..WHILE的第一次循环肯定要执行(真值表达式仅在循环结束时间检查), 而不必执行严格的WHILE循环(每次循环开始时就检查真值表达式, 如果在开始时就为FALSE, 循环会立即终止执行).

DO..WHILE循环只有一种形式:

$i = 0;

do {

print $i;

} while ($i>0);

上面循环只执行一次, 因为第一次循环后,当检查真值表达式时, 它算出来是 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; $i<=10; $i++) {

print $i;

}

/* example 2 */

for ($i = 1;;$i++) {

if ($i > 10) {

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 < count($files); $i++) {

include($files[$i]);

}

(四)、 函数

可以通过以下的语法定义函数:

function foo( $arg_1, $arg_2, ..., $arg_n ) {

echo \"Example function.\\n\";

return $retval;

}

函数中可以使用任何有效的PHP3 代码,甚至是其他的函数或类 的定义

1、 函数返回值

函数可以通过可选的return语句返回值。返回值可以是任何类型,包括列表和对象。

function my_sqrt( $num ) {

return $num * $num;

}

echo my_sqrt( 4 ); // outputs \'16\'.

函数不能同时返回多个值,但可以通过返回列表的方法来实现:

function foo() {

return array( 0, 1, 2 );

}

list( $zero, $one, $two ) = foo();

2、 参数

外部信息可以通过参数表来传入函数中;参数表就是一系列逗号分隔的变量和/或常量。

PHP3支持通过值形参数(默认), 变量参数,和 默认参数。不支持变长参数表, 但可以用传送数组的方法来实现。

3、 关联参数

默认情况函数参数是传值方式。如果你允许函数修改传入参数的值,你可以使用变量参数。

如果你希望函数的一个形式参数始终是变量参数,你可以在函数定义时给该形式参数加(&)前缀:

function foo( &$bar ) {

$bar .= \' and something extra.\';

}

$str = \'This is a string, \';

foo( $str );

echo $str; // outputs \'This is a string, and something extra.\'

如果要传递一个可变参数给默认的函数(其形式参数不是变参方式),你可以在调用函数时给实际参数加(&)前缀:

function foo( $bar ) {

$bar .= \' and something extra.\';

}

$str = \'This is a string, \';

foo( $str );

echo $str; // outputs \'This is a string, \'

foo( &$str );

echo $str; // outputs \'This is a string, and something extra.\'

4、 默认值

函数可以定义 C++ 风格的默认值,如下:

function makecoffee( $type = \"cappucino\" ) {

echo \"Making a cup of $type.\\n\";

}

echo makecoffee();

echo makecoffee( \"espresso\" );

上边这段代码的输出是:

Making a cup of cappucino.

Making a cup of espresso.

注意,当使用默认参数时,所有有默认值的参数应在无默认值的参数的后边定义;否则,将不会按所想的那样工作。

5、CLASS(类)

类是一系列变量和函数的集合。类用以下语法定义:

class Cart {

var $items; // Items in our shopping cart

// Add $num articles of $artnr to the cart

function add_item($artnr, $num) {

$this->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);

相关文章

PHP邮件专题...2006-10-10

Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架,Yii自带了丰富的功能 ,包括MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间2014-09-09

模拟OICQ的实现思路和核心程序(二)...2006-10-10

今天小编就为大家分享一篇关于PHP PDOStatement::fetchAll讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-01-01

PHP用户指南-cookies部分...2006-10-10

PHP+APACHE实现用户论证的方法...2006-10-10

聊天室php&mysql(二)...2006-10-10

WIN98下Apache1.3.14+PHP4.0.4的安装...2006-10-10

php中对2个数组相加的函数代码,需要的朋友可以参考下。2011-06-06

php最近比较热门,所以学习php的朋友也越来越多,这里整理下数据库的一些操作,需要的朋友可以参考下。2010-03-03

最新评论

php 语句,php的控制语句相关推荐

  1. python循环语句-python----循环语句及循环控制语句

    原标题:python----循环语句及循环控制语句 本章节将向大家介绍Python中的条件控制语句及循环控制语句,希望本篇文章对你有所帮助. 一.while 语句 1.while语句的基本形式: [w ...

  2. Database之SQLSever:T-SQL数据语言操作(数据定义语句DDL、数据操作语句DML、数据控制语句DCL、其他基本语句、流程控制语句、批处理语句)概念及其相关案例之详细攻略

    Database之SQLSever:T-SQL数据语言操作(数据定义语句DDL.数据操作语句DML.数据控制语句DCL.其他基本语句.流程控制语句.批处理语句)概念及其相关案例之详细攻略 目录 T-S ...

  3. shell编程之条件判断语句和流程控制语句

    shell条件判断语句和流程控制语句 文章目录 shell条件判断语句和流程控制语句 一.条件判断语法结构 1. 条件判断语法格式 2. 条件判断相关参数 二.流程控制语句 1. 基本语法结构 2. ...

  4. python循环语句-Python-循环语句及循环控制语句

    循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式: Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环): ...

  5. matlab编程选择语句,matlab编程控制语句

    matlab编程控制语句 M文件 程序控制结构 函数文件 程序举例 程序调试,2.1 M文件 2.1.1 M文件概述 用MATLAB语言编写的程序,称为M文件.M文件可以根据调用方式的不同分为两类:命 ...

  6. scala几种循环判断语句_Scala循环控制语句– while,while和for循环

    scala几种循环判断语句 In software programming, certain situations may arise where we need to execute a block ...

  7. JAVA2实验3分支与循环语句,实验3控制语句:分支、循环.doc

    实验3控制语句:分支.循环 实验3 控制语句:分支.循环 一.实验目的 1.掌握 Java表达式语句与复合语句使用方法. 2. 理解 Java 程序语法结构,掌握顺序结构.选择结构的程序设计方法. 3 ...

  8. php 条件语句,PHP条件控制语句之“if语句”实例详解

    if语句的作用 在所有的编程语言中,例如C语言.JAVA等,都有if语句的存在,当然也包括PHP.if语句的作用就是按照条件选择执行不同的代码片段. 我们看一下if语句的格式if(表达式) PHP语句 ...

  9. python循环语句continue_Python循环控制语句中的break和continue语句

    在之前的文章中,介绍了Python中的循环控制语句 while和 for.在循环执行过程中,我们可以使用 break 和 continue 语句来改变循环的流程. 通常情况下,while 循环判断执行 ...

最新文章

  1. 为什么很多 SpringBoot 开发者放弃了 Tomcat,选择了 Undertow?
  2. 数据格式、类型系统与展示
  3. Android APK反编译就这么简单 详解(图文详解)
  4. hdu1754(简单线段树)
  5. windows中wnmp设置nginx启动脚本
  6. python练习题-day25
  7. 英语口语-文章朗读Week10 Thursday
  8. C指针-这该死的嵌入式学习生涯
  9. JSF MVC 流程
  10. 在SQL Server中批量复制,导入和导出的技术
  11. 关于C#传给视图的字符串带有Html转义字符的处理
  12. 虚拟软驱_文伟_新浪博客
  13. 板绘新手入门sai绘画软件有哪些技巧?
  14. 部署Hyper -V实现桌面虚拟化
  15. html css 正六边形,css画正六边形
  16. BIT-Vehicle Dataset - 车辆车型识别数据集
  17. 笔记本无线热点共享批处理bat_马立杰_新浪博客
  18. 地方门户+html+模板,帝国CMS地方门户网站模板(含分类信息,WAP手机模板)
  19. 五款开源内容管理平台对比(免费部分):bolo/fastadmin/wordpress/zblog/redmine
  20. 【Python爬虫】下载微信公众号图片

热门文章

  1. HTML禁用Flash文件右键
  2. 使用Linq判断DataTable数据是否重复
  3. 消息中间件的实现方案
  4. HelloWorld 和相关设置
  5. JavaWeb学习总结(十二)——Session
  6. sql 函数 汉字转拼音
  7. Dojo-API介绍
  8. Java中遍历数组使用foreach循环还是for循环?
  9. PHP的postman请求的五种数据样式
  10. Git的sourcetree找不到git