PHP函数参数传递:按值与引用

需积分: 9 1 下载量 118 浏览量 更新于2024-08-18 收藏 1.42MB PPT 举报
"PHP编程基础,主要讲解了函数的概念、分类、定义与调用方法,以及参数传递的两种方式:按值传递和引用传递。" 在PHP编程中,函数是代码复用的重要工具,能够提高代码的可读性和维护性。预定义函数是PHP内置的,可以直接使用,而自定义函数则是根据项目需求编写的新函数。定义一个自定义函数的基本格式如下: ```php function 函数名(参数1, 参数2, ...){ // 函数体,实现函数功能的代码 } ``` 函数名应具有描述性,参数可以有零个或多个,函数体则包含执行特定任务的代码。调用函数时,只需在适当的位置写上函数名,如果有参数,需要提供相应的值。 在实际应用中,我们需要根据需求定义和调用函数。例如: ```php <?php function example($str){ echo $str . "<br>"; } example("hello"); $a = "world"; example($a); ?> ``` 这个例子展示了如何定义一个简单的函数`example`,它接收一个字符串参数并将其输出。然后,我们两次调用这个函数,分别传入字符串"hello"和"world"。 参数传递在函数中扮演着关键角色。在PHP中,有两种传递参数的方式: 1. **按值传递**:函数接收到的是实参值的一个副本,对形参的修改不会影响到实参。这意味着在函数内部的操作不会改变外部变量的值。 2. **引用传递**:使用引用符号"&",函数实际上获取的是实参的内存地址,因此对形参的任何修改都会直接影响到实参。这种方式允许函数直接修改外部变量的值。 例如,下面展示了按值传递和引用传递的区别: ```php <?php function changeValueByVal($num){ $num = $num + 1; // 按值传递,形参的改变不影响实参 } function changeValueByRef(&$num){ $num = $num + 1; // 引用传递,形参的改变影响实参 } $a = 5; changeValueByVal($a); // $a 仍为5 echo $a . "<br>"; // 输出5 changeValueByRef($a); // $a 变为6 echo $a; // 输出6 ?> ``` 在这个例子中,`changeValueByVal`函数尝试增加`$a`的值,但由于是按值传递,`$a`的原始值没有改变。而在`changeValueByRef`函数中,由于使用了引用传递,`$a`的值确实被增加了1。 了解这些基本概念后,可以进行一些练习来巩固知识,例如: - 练习1:创建一个名为`power`的函数,接受两个参数,返回第一个参数的第二个参数次幂。例如,`power(2, 3)`应返回8(2的3次幂)。 - 练习2:定义一个数组`$seasons`,包含"春", "夏", "秋", "冬",然后编写一个函数`displaySeasons`,通过遍历数组并调用函数将每个季节打印出来,每个季节之间用换行符分隔。 通过实践这些练习,可以更好地理解和掌握PHP中的函数和参数传递。