PHP开发从入门到精通-电子教案-袁鑫 第8章

上传人:E**** 文档编号:89401594 上传时间:2019-05-24 格式:PPT 页数:23 大小:460.50KB
返回 下载 相关 举报
PHP开发从入门到精通-电子教案-袁鑫 第8章_第1页
第1页 / 共23页
PHP开发从入门到精通-电子教案-袁鑫 第8章_第2页
第2页 / 共23页
PHP开发从入门到精通-电子教案-袁鑫 第8章_第3页
第3页 / 共23页
PHP开发从入门到精通-电子教案-袁鑫 第8章_第4页
第4页 / 共23页
PHP开发从入门到精通-电子教案-袁鑫 第8章_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《PHP开发从入门到精通-电子教案-袁鑫 第8章》由会员分享,可在线阅读,更多相关《PHP开发从入门到精通-电子教案-袁鑫 第8章(23页珍藏版)》请在金锄头文库上搜索。

1、第8章 PHP的函数,PHP提供了两种类型的函数,一种是用户自定义函数,完全由用户自己定义,通过讲解用户自定义函数,掌握函数的工作流程、函数的返回值、函数的作用域以及函数的两种值传递方式,并对递归函数做举例说明;一种是内置库函数,内置库函数是PHP中已经预定义的函数,并且它的运行方式在创建时就已预定义。,【例8-1】用户自定义函数与函数值的返回,1)函数声明的语法结构: function 函数名(参数列表) 函数体; return 返回值; 其中: 函数名:是希望创建的函数名,以后要引用或者调用该函数就必须使用这个函数名,函数名必须是唯一的。函数名的命名规则与变量的命名规则一样,但切记:函数名

2、前面不加$符号,这是与变量的不同之处。 参数列表:函数名后必须有一个括号,里面包括的内容称为参数或者参数列表,允许参数为空,或者只有一个参数,或者有多个参数。,【例8-1】用户自定义函数与函数值的返回,函数体:函数独立完成某一特定任务的一组语句,如果有两个或者多个语句,代码必须放在大括号内部(),但是,如果函数的代码部分只包含有一个语句,则可以不使用大括号。 return返回值:返回值不是每个函数都必须有的,这和函数的功能以及用户的需求与自定义有关。返回值指完成函数后返回到主程序中的值。函数的返回值可以是数值、字符等变量。返回值不能有多个返回值,但是如果要返回多个值,则可以将数组作为一个函数的

3、返回值。 在PHP 5后,允许将函数定义语句放在函数调用语句之后,即可以先调用一个未被定义的函数,然后再去定义函数。但是如果函数的定义是有条件的,那么在有条件的定义发生前函数是不能被调用的。,【例8-1】用户自定义函数与函数值的返回,(2)函数的工作流程为: 1)定义一个函数。 2)主程序调用函数,传过去值或者空。 3)函数接收值,并进行处理。 4)返回结果到主程序,并把控制返回到调用它的脚本。,【例8-2】函数的作用域,作用范围只在函数内,在函数外的任何地方都不能使用在函数内部声明的变量,这就叫做函数内部的局部变量。 global语句允许从脚本的任何位置访问函数内部定义的变量,因此,在声明变

4、量的时候,前面必须加上global语句,语法如下: global $变量名1,$变量名2; 而加上global的变量也可以简单地称之为全局变量 注意:static变量和global变量有很大的差别。global变量可以从整个程序的任何位置访问。而static变量仍然是函数内部的局部变量,与普通变量不同的是,一旦函数的执行结束后,这种变量不会丢失自己最后的值。,【例8-3】函数的参数传递,函数传递参数的三种方式,一种是传递默认参数值,一种是用值传递参数,一种是按引用传递参数。 第一种:传递默认参数值。 要使用这种方法,函数必须在定义时有一个默认参数,在主程序中对该函数进行调用时,若实参为空,则自

5、动调用默认参数。如本例中定义的函数: function cube($value=8) /立方体体积函数定义 $value=$value+1; return $value*$value*$value; /返回体积值 给定了一个默认值$value为8,所以当主程序中出现没有参数的调用: echo cube(); /传递默认的参数值 函数自动按照默认值8+1来计算立方体的体积,结果为9*9*9,等于729。,【例8-3】函数的参数传递,第二种: 用值传递参数。 要使用这个方法,必须在主程序中调用函数时传递一个值(或者参数)给函数。如: echo cube(6); /用值传递参数 传递一个数值6给cu

6、be()函数中的$value,然后$value+1,结果为7*7*7,等于343。 又如: $side=12; echo cube($side); echo “; echo $side; 在主程序中定义了一个变量$side,为其赋值12,然后传给函数cube()的$value,然后$value+1,结果为13*13*13,等于2197,回到主程序,再输出$side时,我们会发现,结果仍然为12,$side的值没有变化。这里参数传递的只是一个副本,并没有涉及到存储地址内容的变化。,【例8-3】函数的参数传递,第三种: 按引用传递参数。 在按值传递参数时,只有参数的副本传递给被调用的函数,在被调用

7、函数内部对这些值的任何修改都不会影响到主程序函数中的实参。但如果采取按引用传递参数,就可以直接修改存储地址的内容了。如: echo cube(,【例8-4】函数的递归,像本例中的阶乘计算,若编写如下的代码: $sum=$n*($n-1)*($n-2)*1 那么当这个n数据比较大的时候就会发现,这个$sum的计算将是一个非常长的计算过程,计算过程完全没有效率可言,更不用说要求多个数的阶乘了。 通过本例的函数递归操作可以看到,5、15、25阶乘只需要调用jieche()函数即可,过程简单,有效地去除了程序的冗余。 注意: (1)在递归中要有使递归中止的代码,不能使递归陷入无限循环之中。 (2)要避

8、,【例8-5】PHP内置库函数之数学函数,一般的计算可以通过运算符解决,如加、减、乘、除等。使用 PHP 的数学计算内部函数,可以帮助我们解决一些比较复杂的计算。 round:对浮点数进行四舍五入。 round 函数的语法如下: round(float,precision) 其中,参数 precision 表示小数点后面要保持的精度位数。如果不写参数 precision,表示四舍五入到整数位,比如: echo round(3.4); / 3 echo round(3.5); / 4 echo round(3.6); / 4,【例8-5】PHP内置库函数之数学函数,floor:舍去法求整。 fl

9、oor 函数的语法如下: floor (value) floor 函数返回不大于 value 的最大整数,即将 value 的小数部分舍去取整。示例如下: echo floor(4); /4 echo floor(4.3); / 4 echo floor(9.999); / 9 ceil:进一法取整。 ceil 函数的语法如下: ceil (value) ceil 函数返回不小于 value 的最小整数。示例如下: echo ceil(4); /4 echo ceil(4.3); / 5 echo ceil(9.999); / 10,【例8-5】PHP内置库函数之数学函数,pow:求幂。 po

10、w 函数的语法如下: pow (base,exp) pow 函数返回 base 的 exp 次方的幂。下面的示例表示求 2 的8 次方,返回结果是256。 echo pow(2, 8); / 256 rand:产生一个随机整数。 rand 函数的语法如下: rand (min,max) rand 函数返回一个介于最小值 min 和最大值 max 之间(包括min、max)的随机整数。比如下面的示例返回一个 26 之间的随机整数。 echo rand(2,6);,【例8-5】PHP内置库函数之数学函数,max:返回参数中数值最大的值。 如果 max 函数只有一个参数且为数组,max 返回该数组中

11、最大的值。 echo max(1, 3, 5, 6, 7); / 7 echo max(array(2, 4, 5); / 5 min:返回参数中的最小值。 如果 min 函数只有一个参数且为数组,min 返回该数组中最小的值。 echo min(1, 3, 5, 6, 7); / 1 echo min(array(2, 4, 5); / 2 decbin:十进制转换为二进制。 decbin 函数的语法如下: decbin (number) decbin 返回一个字符串,即返回参数 number 的二进制表示。 echo decbin(12); /1100 bindec:二进制转换成十进制。

12、bindec 函数的语法如下: bindec (binary_string) bindec 函数将二进制字符串 binary_string 转换成一个十进制整数。示例如下: echo bindec(“110011“); /51,【例8-5】PHP内置库函数之数学函数,hexdec:十六进制转换为十进制。 dechex:十进制转换为十六进制。 dechex和hexdec 函数示例如下: echo dechex(47); /2f echo hexdec(“2f“); /47 decoct:十进制转换为八进制。 octdec:八进制转换为十进制。 echo decoct(12); /14 echo

13、octdec(“14“); /12,【例8-6】PHP内置库函数之字符串函数,strlen strlen 函数能得到一个字符串的长度。下面的示例中,得到的变量 $a 的长度为 8。 $a = “ bcdef“; echo strlen($a); /8 trim trim 函数的功能是将字符串两边的空格都去掉。比如下面示例中变量 $a 的值是 “abcdef”,字符串两边各有一个空格,trim 之后,由于去掉字符串两边的两个空格,字符串的长度就是6。 $a = “ abcdef “; echo strlen(trim($a); /6,【例8-6】PHP内置库函数之字符串函数,ltrim ltri

14、m 函数的功能是将字符串左边的空格去掉。 echo “nice“,“ try“; /nice try echo “nice“,ltrim(“ try“); /nicetry rtrim rtrim 函数的功能是将字符串右边的空格去掉。 echo “a “, “b“; /a b echo rtrim(“a “),“b“; /ab,【例8-6】PHP内置库函数之字符串函数,substr 通过 substr 函数可以得到字符串的一部分。substr 函数的语法如下: substr(string,start,length) 意思是从字符串 string 的 start 位置开始,截取长度为 lengt

15、h 的字符串。字符串 string 的第一个字符的位置是0,而不是1。示例如下: echo substr(“hello,world! “,0,3); /hel 上面示例表示,从字符串第1个字符开始,截取3个字符,返回结果是 hel。 echo substr(“hello,world! “,3,5); /lo,wo 上面示例的意思是从字符串 hello,world! 的第4个字符开始,截取5 个字符,得到的结果是 lo,wo。 也可以不写参数 length,表示从 start 位置开始截取后面所有的字符串,比如: echo substr(“hello,world!“, 3); /lo,world

16、!,【例8-6】PHP内置库函数之字符串函数,strtolower strtolower 的功能是将字符串全部变成小写。示例如下: echo strtolower(“SUNNY DAY!“); /sunny day! strtoupper strtoupper 和 strtolower 相反,功能是将字符串都变成大写。示例如下: echo strtoupper(“hello,world!“); / HELLO,WORLD! str_replace str_replace 的作用是替换字符串。str_replace 函数的语法如下: str_replace(search,replace,subject) 意思是在 subject 字符串中找到任何符合 search 的字符串,然后用 replace 代替所有 search 字符串。 示例如下: echo str_repl

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号