当前课程知识点:PHP程序设计 > PHP函数 > 函数参数传递 > 函数参数传递1
我们接着往下讲的就是
php函数间的传递参数
刚才其实我们在
定义和调用的时候已经见识过了
在调用的时候需要向
函数传递的参数
那么它是实参
比如说刚才的十对吧
我们实际要进行计算的那个
那么我们自己在函数定义的参数
就是形参
刚刚我们的那个例子其实就是
$number就是我们的形参
那么从形参到实参
它们这样子来回的传递参数
我们一共有三种形式
对吧
在php的自定义函数中
第一种是按值传递
按值传递是什么样的
那么它会把实参的值复制给
对应的形参
在函数内操作是针对于形参
来进行的
操作的结果注意不会影响实参
也就是说函数一返回
实参原本是什么还是什么
对吧
这个概念先看到
然后我们来看一个例子
这个例子一上来
我们又是自定义函数example
对不对
它的形参是谁
$m对吧
咱们看一下example里面
做了个什么事情
它是不是把$m的值给变了
乘了个五加了个十
而且还干什么
在这个函数内还做了一个输出
输出在函数内$m的值
把$m还输出了一次
然后我们再来看底下
底下我们主函数里面
我们首先给$m做了个赋值
赋值为1
然后紧接着就调用了
example这个函数
而且括号里面
这个$m其实就已经是实际参数了
对不对
是实参了
这个实参是几
是不是刚刚赋值过
是1
把这个1相当于赋进来
然后执行这个函数
那么1×5+10
$m变成几了
15
那么echo这一句话的时候
我们在函数内$m等于几
15对不对
好了
做到这我们的这个函数就结束了
但是我们的这个程序还没有结束
调用完函数之后
我们又做了一个echo
echo说在函数外$m是几
根据我们刚才说的
按值传递
我们的$m在主函数的这个地方
是不是赋值是1
函数内虽然发生了改变
但是会不会影响实参
不会
所以函数外$m的值是几呢
依旧是1
没有发生变化
函数内$m的值是15
函数外$m的值就是1了
那么既然能按值传递
自然也能够按地址传递
也就是我们说的按引用传递
那么这个引用传递怎么传递
它是把实参的内存地址
传递给相应的形参
那么这样子你要知道
改的是内存地址
那么这样在函数内部的所有操作
都会影响到实参
也就是说
当函数返回之后
你的实参的值就会变了
以我们刚才的那个例子来看
也就是说我们的结果
应该是这样的
那么如果我们传的是地址
函数内$m是15
函数外$m也会变成15
那么这个传递值怎么传
各位同学可以想一想
地址地址
我们之前好像说过一种符号
表示它的一个取地址符号
是怎么样的
对不对
那样花形的符号对不对
那么关于我们传地址
应该怎么样传
来仔细看一下这个代码
大家看到了
我们的地址符号放在了哪个位置
是不是放在了形参前面
对吧
那么我们只需要把刚才的程序
只改这一点点
在形参前面加上这样子的
取地址符号
那么其实就是把我们的一个
实际参数的内存地址
对应的传到了相应的形参里面
那么这样子出现的结果
我们函数内$m15
函数外$m也会变成15的
OK同学们来自己试一下
刚才让同学们做的例子就是
我们输出的结果
按地址传递的时候
我们的实参随着形参的变化
发生了变化
对吧
那么注意
刚才让同学们做的练习
你会发现我PPT上面这个地方
取地址的符号放在了形参的前面
放在了行参前面可以顺利地得到
我们刚才的两个$m都变成15
但是如果我们放在实参的前面
你看一下题目
是不是报错了
对吧
报错了
OK还有一个图片
我们是放在了两个参数的前面
对吧
那么这两个实参形参前面都放了
同样的发生了报错
对吧
那么简单的来说
同学们需要记一下这句话了
就是在php5.4中
这个取地址的符号
应该放在形参的前面
注意一下
我们这个地方提到了一个
php的版本
可以这么说
咱们现在用的php版本是5.4.6
对不对
那么在我之前上课的时候
曾经用过php5.2的版本
5.3的版本
在5.2 5.3版本的时候
刚才那三张图片
都可以都是正确的
它们三个原本都是正确的
但是升级到5.4之后
这个传地址的地址符
就只能放在形参前面了
这一块也是再次说明了
就是我们php版本
一旦升高了之后
可能大家学到东西
会多少受到一些影响
那么目前在5.4里面
我们如果要引用传递的话
那么我们的取地址符号
应该放在形参的前面
-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