当前位置:文档之家› 第3章:H2-3自定义函数与流程控制

第3章:H2-3自定义函数与流程控制


跳转语句

return跳转语句
个函数调用了return语句将立即结束该函数的执行并将它 的参数作为函数的值返回;如果在全局范围中调用,则 当前脚本文件终止执行。 该语句使用最多的地方是在自定义函数中,通过return语 句返回变量的值。
return语句用于结束一个函数或脚本文件的执行,如果一

课堂提问时间
完成一个化的策略就需要定义一个函数。在PHP中定义函数的语法格 式如下。 function fun_name($arg_1,$arg_2,….,$arg_n) { code 函数要执行的代码; return 返回的值; } 当函数被定义后,所要做的就是调用这个函数。调用函数的操作十分 简单,只需要引用函数名并赋予正确的参数即可完成函数的调用。
条件控制语句
switch多分支语句
switch语句和if条件控制语句类似,实现将同一个表达式与很多不同 的值比较获取相同的值,并且执行相同的值对应的语句。 语法: switch(expr){ case expr1:
statement1; break;
case expr2:
statement2; break;
default:
statementn;
if和switch语句的区别
if和switch语句可以从使用效率和实用性角度上来进行区别
如果从使用效率上进行区分,在同一个变量的不同值作
条件判断时,可以用switch语句与if语句,使用switch语句 的效率相对更高一些,尤其是判断的分支越多越明显。
循环体语句
非0 表达式
0
循环语句
for循环语句
for语句是PHP中最复杂的循环控制语句,拥有3个条件表 达式。其执行的过程是首先执行表达式1,然后执行表达 式2,并对表达式2的值进行判断,如果值为真,则执行 for循环语句中指定的内嵌语句,如果值为假,则结束循 环,跳出for循环语句,最后执行表达式,返回表达式2, 表达式1 继续循环执行。for 循环语句的操作流程如图所示。
0
表达式 非0 语句
循环语句
do….while循环语句
do…while语句也是循环控制语句的一种,使用方式和 while相似,也是通过判断表达式的值来输出循环语句。 该语句的操作流程是:先执行一次指定的循环体语句, 然后判断表达式的值,当表达式的值为真时,返回重新 执行循环体语句,如此反复,直到表达式的值为假为止, 此时循环结束。其特点是先执行循环体,然后判断循环 条件是否成立。do…while循环语句操作流程如图所示。
递归函数
• 即调用自身的函数

示例
<?php function dou1($s){ if ($s <0) { echo 'error'; } else { if($s==0 OR $s==1) { return 1; } else { return dou1($s-1)*$s; } } } echo dou1(4); ?>
控制结构
程序三种控制结构
顺序结构
顺序结构是最简单基本的结构方式,各流程框依次按顺序执行。 选择(分支)结构 选择结构就是对给定条件进行判断,条件为真时执行一个分支,条 件为假时执行另一个分支。 循环结构 循环结构可以按照需要多次重复执行一行或者多行代码。循环结构 分为两种:前测试型循环和后测试型循环。
假 表达式2 真 语句
表达式3
for语句的下一语句
循环语句

foreach循环语句
foreach循环语句自PHP4开始被引入,主要用于处理数组, 是遍历数组的一种简单的处理方法。如果将该语句用于 处理其他的数据类型或者初始化的变量,将会产生错误。 该语句的语法有两种。
语法:
foreach(arry_expression as $value){ statement; } foreach(array_expression as $key=>$value){ statement; }
自定义函数与流程控制
学习目标
自定义函数 掌握if条件控制语句、switch分支控制语句 掌握while、do while、for、foreach循环控制语
句 了解break、continue、return跳转控制语句 文件包含语句
自定义函数

定义和调用函数
函数是代表一组语句的标识符,它能够实现程序模块化的策略。要
条件控制语句
if条件控制语句
if条件控制语句是所有流程控制语句中最简单、最常用的一个。 应用范围十分广泛,无论程序大小几乎都会应用到该语句。 语法: if(expr)statement; // 这是基本的表达式 if(){ } // 这是执行多条语句的表达式 if(){ }else{ } //这是通过else延伸了的表达式 if(){ }elseif(){ }else{ } //这是加入了elseif同时判断多个条件 的表达式
函数嵌套
• 在函数中定义并调用其它函数 • PHP不限制嵌套函数的作用域 示例
<?php function myfun($number){ function appfun($x){ return $x."hello“;} function errfun($x){ return "error!“;} if($number>0){echo appfun($number);} Else {echo errfun($number);} } $number=0; myfun($number); ?>
函数库
• 伟大的程序员都懒,而懒的程序员都会从重用性 的角度考虑问题,函数是实现重用性的核心。 • 在一个文件中简单地聚集函数定义就可以创建PHP 库。 • 可以在需要的地方对该函数库文件引入即可。
文件包含语句
• include() 将在其被调用的位置处包含一个文件。包含一个文件与在 语句所在位置复制指定文件的数据具有相同结果。 • include_once() 同上,区别是如果已经包含,则不再执行Include_once()。 • require() 和Include()区别在于如包含文件不存在:include() 产生一 个警告,并继续执行;require() 则导致一个致命错误,停 止执行。 • require_once() 确保文件只包含一次。
变量函数
• 指函数名在执行前要进行计算,这意味着函数名直到执行 才确定。 • 变量函数前面有美元符$。

示例
<?php function foo() { echo "In foo()<br>\n";} function bar($arg = '') { echo "In bar(); argument was '$arg'.<br>\n";} function echoit($string) { echo $string;} $func = 'foo'; $func(); $func = 'bar'; $func('test'); $func = 'echoit'; $func('test'); ?>
return()将函数的值返回给函数的调用者,即将程序控制权返回到 调用者的作用域。注意,如果在全局作用域内使用return(),那么 将终止脚本的执行。
list()函数
通过list()语言结构可以从函数返回多个值,主要功能是将数组中 的值赋给变量。 语法:void list(mixed varname,mixed …) 像arry()一样,list()不是真正的函数,而是语言结构。list()用一步 操作给一组变量进行赋值。
小结
本章主要介绍了流程控制语句的知识,并且介绍 了算法和程序的控制结构。读者应重点掌握3种流程 控制语句:条件控制语句、循环控制语句和跳转控 制语句。在掌握流程控制语句的基础之上,读者对 程序的算法和控制结构应该有所了解,通过本章的 学习,可以从宏观的角度去认识PHP语言,从整体上 形成一个开发的思路,逐渐的形成一种属于自己的 编程思想和编程方法,这才是学习PHP语言的最终目 的。
实参的内存地址传递到形参中,在函数内部的所有操作都会影响 到实参的值,即返回后,实参的值会相应发生变化,传值时只需 要在原基础上加“&”即可。
可选参数
还有一种设置参数的方式,即可选参数。可以指定某个参数为可 选参数,将可选参数放在参数列表末尾,并且指定其默认值为空
自定义函数

函数的返回值
通常函数将返回值传递给调用者的方式有两种: return()函数
自定义函数

在函数间传递参数
在调用函数时,需要向函数传递参数,被传入的参数称为实参,而函 数定义的参数为形参。参数传递的方式有按值传递和按引用传递两种。 按值传递方式 将实参的值复制到对应的形参中,在函数内部的操作针对形参进 行,操作的结果不会影响到实参,即函数返回后,实参的值不变。
按引用传递方式
如果从语句的实用性的角度去区分,那switch语句肯定不
如if条件语句。If条件语句是应用最广泛和最实用的语句。
循环语句
while循环语句
while循环控制语句,其作用主要是反复的执行某一项操 作。是循环控制语句中最简单的一个,也是最常用的一 个。while循环控制语句对表达式的值进行判断,当表达 式的值为0值时,则不执行while语句中的内嵌语句。该语 句的特点是:先判断表达式,后执行语句。while循环控 制语句的操作流程如图所示。
参数array_expression是指定要遍历的数组,其中$value是数组的值, $key是数组的键名,statement是满足条件时要循环执行的语句。
相关主题