php自定义函数的参数在函数间传递的三种方式详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php自定义函数的参数在函数间传递的三种方式详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2851字,纯文字阅读大概需要5分钟。
内容图文
![php自定义函数的参数在函数间传递的三种方式详解](/upload/InfoBanner/zyjiaocheng/146/c7fa394fb098414bbf167b4b31b596a6.jpg)
1.按值传递的方式
将实参的值赋值到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回后,实参的值不会改变。值传递(pass-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
首先定义一个函数 example(), 功能是将传入的参数值做一些运算后在输出;接着在函数外部定义一个变量$m,也就是实参;最后调用函数 example($m)。分别在函数体内和体外输出形参 $m 和 实参 $m 的值。
其实例代码如下的显示:
<?php function example($m){ $m = $m + 10; echo "在函数内部:m = ".$m ."<br>"; //输出形参的值 } $m = 1; example($m); // 将实参$m的值传递给形参$m echo "在函数外部:m = ".$m; // 实参的值没有变化,$m = 1 ?>
函数的运行结果如下图:
2. 按引用传递方式
按引用传递就是将实参的内存地址传递给形参。这时,在函数内部所有对形参的操作都会影响到实参的值。函数返回后,实参的值会发生变化。引用传递方式就是函数定义时在形参前面加上 “ & ” 符号。引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
代码示例如下所示:
<?php function example(&$m){ //定义一个函数,同时传递参数$m的地址 $m = $m + 10; echo "在函数内部:m = ".$m ."<br>"; //输出形参的值 } $m = 1; example($m); // 将实参$m的地址传递给形参$m echo "在函数外部:m = ".$m; // 实参的值发生了变化,$m = 11 ?>
函数的运行结果如下图:
3. 默认参数(可选参数)
还有一种设置参数的方式,即可选参数。可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并且指定其默认值为空。
应用一个例子使用可选参数实现一个简单的价格计算功能。设置自定义函数 values 的参数 $tax 为可选参数,其默认值为空。 第一次调用该函数,并且给参数 $tax 赋值,输出价格;第二次调用该函数,不给参数复制,输出价格。
其代码如下所示:
<?php function value($price, $tax=""){ //定义一个函数,第二个参数为空 $price = $price*$tax; echo "价格:$price<br>"; //输出价格 } value(10,5); // 为可选参数赋值5 value(10); // 没有给可选参数赋值 ?>
输出结果为:
价格:50
价格:0
注意:当使用默认参数时,默认参数必须放在非默认参数的右侧,否则函数可能出错。
说明:从PHP5 开始,默认值也可以通过引用传递。下面一章将介绍什么是自定义函数的返回值。
【相关教程推荐】
1. 《php.cn独孤九贱(4)-php视频教程》
2. php编程从入门到精通全套视频教程
3. php实战视频教程
以上就是php自定义函数的参数在函数间传递的三种方式详解的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的php自定义函数的参数在函数间传递的三种方式详解全部内容,希望文章能够帮你解决php自定义函数的参数在函数间传递的三种方式详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。