当前课程知识点:PHP程序设计 > PHP函数 > 自定义函数总结和实验 > 自定义函数总结和实验
咱们上节课已经开始学习了
第五章php的函数
那么上节课讲的主要内容是
这个部分的前三讲的内容
那么关于我们
php自定义函数的定义调用
函数参数的传递以及返回值
我们来快速的复习一下
那么我们php里面
自定义函数的语法结构
依旧是function
然后自己定义我们的函数名称
括号里面可以带多个形参
那么在花括号里面完成
某个任务或者功能的代码段
最后用return来做一个返回值
那么调用的时候
我们直接是函数名
括号里面带的是实参
也就是把实际的参数带进去
进行一个计算
我们同样可以把函数调用
返回的内容赋给某一个变量
这样也是可以的
那么在咱们函数的传递里面
形参和实参的来回传递
有三种方式
第一个按值传递
那那么直接把实参的值复制给
对应的形参
那么这样出现的结果就是
我们在函数内部做的操作
返回了之后
实参的值不发生改变
比如说我们这个例子
我们$m赋值为1
那么我们把$m这样子的一个
已经赋值了1的这样子的一个实参
传递给形参$m
那么在example的函数里面
我们$m其实值发生了变化
对不对
1×5+10到来变成了15
那么输出在函数内
$m自然就是15了
这个是毫无疑问的
但是当我们的example
这个子函数结束了之后
出来
我们的主函数里面还有一个echo
问在函数外$m是多少
那么因为我们是值传递
$m原来在主函数里面赋值为1
它依就为1
就是我们里面的形参的内容
$m的内容并不会影响
外面实参的一个数值
这是按值传递
那么还有一种情况就是
我们可以传地址
传递指自然就要加
这样子的一个取地址符了
关键是取地址符加在哪里
那么我们之前
让各位同学做过笔记
在我们目前使用的php5.4里面
我们的取地址符
要放在形参的前面
那么这样的一个程序
只比刚才的那个程序
多了一个取地址符
那么我们实际上是把
实参的内存地址传递到了行参中
这样子我们函数内部的
所有的操作都会影响到实参的值
所以当函数返回了之后
函数内它$m是15
函数外$m也就是15了
这是一个地址传递
第三个php里面特别的就是
我们在定义形参的时候
可以定义一个可选参数
这个可选参数有两个要求
第一个要求
要放在参数列表的末尾
它必须要在最后面
第二个就是这个可选参数
必须要指定一个默认值
即便你这个值默认值为0的话
也必须要像这样子
等于双引号引起来的
一个空字符串
来表示一个默认
OK
那么这种可选参数
可选的意思就是说它可以选
也可以不用选
对吧
我们的这个例子里面
我们定义的values
这样子的一个子函数
括号里面的可选参数是一个tax
也就是税金
那么我们的税金可能在
某一些价格的情况下
我们要收税的
某一些价格的情况下
不收税的
那么在调用的时候values括号里面
100,0.25
很显然0.25就是
我们给我们的可选参数
做了一个赋值
那么第二次调用的时候
$values(100)
那么我们的可选参数
没有赋值的情况下
那么就按照它的默认值为0
所以我们的价格是100+100×0
所以最后输出的结果依旧是100
那么可选参数
我们除了赋可以0.25
是不是还可以赋其他的
对吧
其实就像在这种不同等级的税金
还有咱们做的那种会员折扣
这种情况下
经常会用可选参数来方便
我们这样子的一个函数的一个定义
需要注意的就是两点
可选参数要放在列表的末尾
而且必须要指定默认值
如果不指定默认值你可以看一下
如果不指定默认值
是不是看起来就像
我们的自定义函数括号里面
有两个形参对不对
因为有两个形参的话
那你赋值的时候
是不是应该对应的有两个实参
但是如果只有一个实参
你可以看一下报错信息
第一个是可以算出来的
第二个是不是就没有了
因为我们的values里面
少了一个参数
所以这个可选参数
你要证明它是可选的
必须给它赋一个默认值
那么最后一个就是
我们php自定义函数
我们的返回值依旧是用
return语句来进行返回
函数的定义
不需要声明返回值
那么定义的时候我们
values括号里面
只定义一个形参就可以了
返回值直接用return语句
把它做一个返回
OK这就是我们自定义函数
前面三个部分的内容
那么紧接着我们来完成一个
自定义函数的例题
非常简单的例题
我们实现一个自定义一个函数
实现0到N的累加和
然后调用这个函数计算一下
0到15的一个累加和
那么很显然我们要先自定义函数
对吧
那么function
那么这个函数我就叫添加吧
对吧
然后这个里面
大家想想看几个参数
这个地方都已经说了
0到N的累加和
你还用把0设参数
你就一个参数就行了对吧
就一个参数我们传递给
$number
对吧
那么在这个里面累加和怎么算
累加和咱们最常用的
是不是for循环
$i等于从几开始
0然后$i小于谁呢
是不是累加到几
应该是小于等于$number
好的分号隔开
然后$i要加加好的
然后在for循环里面
我们要做什么事情
是不是要求和
$sum
这个地方出现了一个问题
就是我们$sum
刚才是不是没有定义
所以我们放在for前面
做一个定义对吧
$sum等于0
赋个初值对吧
然后底下好算它嘛
$sum等于什么
等于$sum加上$i分号
好了
这么一看
累加和好像就这么已经做好了
对不对
然后我们可以在这个地方
是不是直接echo
那个和是几
和是什么内容
是不是就是$sum
就是$sum
但是注意
咱们现在还都是自定义函数
自定义函数相当于
我们把所有的事情已经做了
初值是0
然后从0到就是$number
对吧
然后我们逐一的去添加
最后输出
那么在底下调用的时候
我们只需要调用一个什么
我们只需要传递一个真实的数值进去
15
是不是人家题目要求的是
0到15的累加和
我们就做成这样
跑一下看看结果吧
当然了我没有做别的什么设置
对吧
0到15的累加和是一个什么
120
当然了各位同学
还可以给它再添加一点
比如说在前面可以再添加一点
0到$number的一个内容
对吧
字符串连接符
把结果最后设置一下
就可以了
-PHP概述
-PHP概述--作业
-开发环境搭建
--开发环境搭建一
--开发环境搭建二
--集成环境的安装
-开发环境搭建--作业
-PHP语法入门
--语法入门一
--语法入门二
-PHP数据的输出
--数据输出
-PHP数据类型
--数据类型1
--数据类型2
--数据类型3
--数据类型4
--数据类型5
--数据类型6
-PHP常量和变量
--常量和变量1
--常量和变量2
--常量和变量3
--常量和变量4
--常量和变量5
--常量
-PHP常量和变量--作业
-PHP的运算符和表达式
--运算符和表达式1
--运算符和表达式2
--运算符和表达式3
-PHP语法基础--PHP的运算符和表达式
-条件判断语句
--条件判断语句1
--条件判断语句2
--条件判断语句3
--条件语句
-循环控制语句
--循环控制语句
--循环语句练习1
--循环语句练习2
-跳转语句和终止语句
--跳转和终止语句
-流程控制
-数组概述和分类
--数组概述和分类
--PHP数组分类
-数组创建、删除和修改
--数组创建
-数组遍历
--数组遍历1
--数组遍历2
--数组遍历3
--数组遍历4
--数组遍历5
--foreach
-数组相关函数
--数组相关函数1
--数组相关函数2
--数组相关函数3
--数组相关函数4
--数组相关函数5
--数组相关函数6
--数组函数的练习
-PHP数组--作业
-分页函数的应用
-函数的定义与调用
--函数定义与调用
-函数参数传递
--函数参数传递1
--函数参数传递2
-自定义函数总结和实验
-常用变量和数学函数
--变量和数学函数库
--数学函数实验
--数学函数
-日期和时间函数
--日期时间函数1
--时间日期函数2
--倒计时
-PHP函数--作业
-字符串概述
--字符串特点
--字符串处理方式
-常见的字符串函数
--常见字符串函数1
--输出函数1
--输出函数2
--输出函数3
--去除空白函数1
--去除空白函数2
--去除空白函数3
--其他字符串函数1
--其他字符串函数2
--字符串函数实验1
--字符串函数实验2
--字符串函数实验3
--字符串函数实验4
--字符串练习1
--字符串练习2
--字符串练习3
--字符串练习4
--字符串练习5
--字符串函数
-正则表达式
--正则表达式练习
--正则表达式
-字符串函数--作业
-文件概述和操作
--文件概述和操作1
--文件概述和操作2
-文件的上传和下载
--文件上传1
--文件上传2
--文件上传3
--文件下载
-图像基础
--图像基础1
--图像基础2
-图像基本操作
--图像基本操作1
--图像基本操作2
--图像基本操作3
--图像基本操作4
--图像基本操作5
--图像基本操作6
--表单与验证码的结合
--图像技术练习1
--图像技术练习2
--图像技术练习3
--缩略图
-PHP文件与图像技术-作业
-变色验证码
-会话表单
--会话表单概述1
--会话表单概述2
--会话表单概述3
--超全局变量1
--超全局变量2
--超全局变量3
--表单安全验证
--获取表单数据
-cookie概述
--COOKIE简介
--COOKIE
-session概述
--基本应用1
--基本应用2
-会话管理-作业
-会话管理
-MySQL和PHPMyadmin概述
--MySQL概述1
--MySQL概述2
-PHP访问MySQL
--连接服务器
--选择数据库
--浏览表内容1
--浏览表内容2
--使用mysqli扩展添加数据到数据库中
--使用mysqli扩展删除数据库中数据
--使用mysqli扩展修改数据库中数据
-MySQL扩展的使用
--添加数据页面1
--添加数据页面2
--删除页面1
--删除页面2
--删除页面3
--数据修改页面1
--数据修改页面2
--数据修改页面3
