加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP函数参数传递的方式有几种?一文带你迅速了解

发布时间:2021-12-23 12:41:31 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要给大家介绍的关于PHP函数参数传递方法的内容,包括值传递、引用传递、默认参数和可变长度参数这四种,下面我们就来具体了解一下。 在调用函数时,需要向函数传递参数,被传入函数的参数称为实参,而函数定义的参数称为形参。 1. 值传递 值传递是
  这篇文章主要给大家介绍的关于PHP函数参数传递方法的内容,包括值传递、引用传递、默认参数和可变长度参数这四种,下面我们就来具体了解一下。
 
       在调用函数时,需要向函数传递参数,被传入函数的参数称为实参,而函数定义的参数称为形参。
 
       1. 值传递
 
       值传递是 PHP 中函数的默认传值方式,也称为“拷贝传值”。顾名思义值传递的方式会将实参的值复制一份再传递给函数的形参,所以在函数中操作参数的值并不会对函数外的实参造成影响。因此如果不希望函数修改实参的值,就可以通过值传递的方式。
 
       【示例】下面定义一个简单的函数,函数有两个参数,在函数中交换参数的值。
 
<?php
  function swap($a, $b){
    echo '函数内,交换前 $a = '.$a.', $b = '.$b.'<br>';
    $temp = $a;
    $a = $b;
    $b = $temp;
    echo '函数内,交换后 $a = '.$a.', $b = '.$b.'<br>';
  }
 
  $x = 5;
  $y = 7;
  echo '函数外,交换前 $x = '.$x.', $y = '.$y.'<br>';
  swap($x, $y);
  echo '函数外,交换后 $x = '.$x.', $y = '.$y;
?>
       运行结果如下:
 
函数外,交换前 $x = 5, $y = 7
函数内,交换前 $a = 5, $b = 7
函数内,交换后 $a = 7, $b = 5
函数外,交换后 $x = 5, $y = 7
 
       通过运行结果可以看到,在函数内,数值确实是交换了,而在函数外部,数值却没有变化。因此可以说,函数的值传递只是传递变量的副本。那么要是想让函数能够操作函数外实参的话,就需要使用引用传递的方式了。
 
       2. 引用传递
 
       参数的引用传递就是把实参的内存地址复制一份,然后传递给函数的形参,实参和形参都指向同一个内存地址,因此函数对形参的操作,会影响到函数外的实参。
 
       按引用传递就是将实参的内存地址传递到函数的形参中。因此实参和形参指向的是同一个内存地址。这时在函数内部的所有操作都会影响到函数外实参的值。引用传递的方式就是在值传递的基础上加上一个&符号,如下所示:
 
function name (&参数1, &参数2, ..., &参数3) {
  ...  
}
       【示例】将上面示例的代码略作调整,使用引用传递的方式向 swap 函数中传递参数,代码如下所示:
 
<?php
  function swap(&$a, &$b){
    echo '函数内,交换前 $a = '.$a.', $b = '.$b.'<br>';
    $temp = $a;
    $a = $b;
    $b = $temp;
    echo '函数内,交换后 $a = '.$a.', $b = '.$b.'<br>';
  }
 
  $x = 5;
  $y = 7;
  echo '函数外,交换前 $x = '.$x.', $y = '.$y.'<br>';
  swap($x, $y);
  echo '函数外,交换后 $x = '.$x.', $y = '.$y;
?>
       运行结果如下:
 
函数外,交换前 $x = 5, $y = 7
函数内,交换前 $a = 5, $b = 7
函数内,交换后 $a = 7, $b = 5
函数外,交换后 $x = 7, $y = 5

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读