php怎么传参和接参
时间 : 2023-03-23 21:18:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

PHP是一种流行的开发语言,在Web开发中广泛应用。PHP语言中,函数参数的传递有两种方式:值传递和引用传递。值传递将变量的值复制一份传递给函数,函数对变量进行修改不会影响原始变量的值。而引用传递将变量的内存位置传递给函数,函数对变量进行修改会影响原始变量的值。

下面我们演示一下PHP函数参数的传递方式:

值传递:

```php

function add($a, $b) {

$a += $b;

return $a;

}

$x = 2;

$y = 3;

$z = add($x, $y);

echo "x = $x, y = $y, z = $z";

结果输出为:

x = 2, y = 3, z = 5

在这个例子中,我们定义了一个名为add的函数,传递了两个参数$a和$b。在执行add函数时,$a和$b的值均复制一份传递给函数,函数对$a进行了修改,但不会改变原来的$x的值。

引用传递:

```php

function add(&$a, $b) {

$a += $b;

return $a;

}

$x = 2;

$y = 3;

$z = add($x, $y);

echo "x = $x, y = $y, z = $z";

结果输出为:

x = 5, y = 3, z = 5

在这个例子中,我们使用了引用传递,将变量$x的内存位置传递给函数,函数对$x的修改也反映在原来的$x的值上。

除了上述的传递方式外,PHP还支持可变数量的参数列表。这个功能类似于Python中的*args和**kwargs。在函数定义中,我们可以使用三个点号(...)来表示接连的参数(可变数量参数):

```php

function sum(...$numbers) {

$result = 0;

foreach ($numbers as $number) {

$result += $number;

}

return $result;

}

$s = sum(1, 2, 3);

echo "s = $s";

结果输出为:

s = 6

在这个例子中,我们定义了一个名为sum的函数,接受可变数量的参数$numbers。函数会将所有的参数相加并返回结果。

上述是PHP函数传递参数和接收参数的途径,它们的调用方法类似。在调用时,我们需要将要传递的参数放在函数名之后的圆括号内,多个参数之间使用逗号隔开。

在 PHP 中,传参和接参包括函数传值和引用传值两种方式。

1. 函数传值

函数传值是指在函数调用时,将变量的值传递给函数内部使用。函数内部可以使用这个参数,但是函数内部对这个参数所做的修改不会影响调用函数的外部环境。

例如:

```php

function sum($num1, $num2) {

$result = $num1 + $num2;

return $result;

}

$result = sum(2, 3); // 传入参数 2 和 3

echo $result; // 输出 5

上面的例子中,`sum` 函数有两个参数 `$num1` 和 `$num2`,函数内部将这两个参数相加并返回结果,调用函数时传入了参数 `2` 和 `3`,最后结果为 `5`。

2. 引用传值

引用传值是指在函数调用时,将变量的地址传递给函数内部使用。函数内部对这个参数所做的修改也会影响调用函数的外部环境。引用传值需要在参数前面加上 `&` 符号。

例如:

```php

function addOne(&$num) {

$num++;

}

$num = 1;

addOne($num); // 传入参数 $num,并对 $num 增加 1

echo $num; // 输出 2

上面的例子中,`addOne` 函数接受一个参数 `$num`,函数内部将参数 `$num` 增加 1,调用函数时传入了参数 `$num`,最后结果为 `2`。需要注意的是,这里的参数 `$num` 前面有个 `&` 符号,表示传递的是 `$num` 的地址。

总结:

* 函数传值是将变量的值传递给函数内部使用,但函数内部对参数所做的修改不会影响调用函数的外部环境。

* 引用传值是将变量的地址传递给函数内部使用,函数内部对参数所做的修改会影响调用函数的外部环境。

* 在参数前加上 `&` 符号,表示传递参数的地址。