php中函数参数传递的3种方式和区别「附详解」

1. 传值方式

在PHP中,函数参数传值方式是最常见的一种方式。当我们调用函数并传递参数时,实际上是将参数的值复制一份到函数的参数中,函数对这个副本进行操作,不会影响原始值。

下面是一个例子:

function add($num){

$num = $num + 1;

echo $num;

}

$number = 5;

add($number);

echo $number;

上述代码中,函数add接受一个参数$num,该参数是按值传递的。在函数中对$num进行了加一操作,并打印出结果。然后在外部调用函数add,并打印出原始值$number。运行结果如下:

6

5

从上述运行结果可以看出,函数内部对参数的修改并没有影响到外部的变量值。

需要注意的是,虽然传值方式不会对原始值产生影响,但如果传递的是对象或数组,传递的其实是对象或数组的引用。

2. 引用传递方式

在某些情况下,我们希望函数能直接修改原始值,而不是对副本进行操作,这时就可以使用引用传递方式。

在PHP中,使用引用传递需要在函数参数前面加上&符号。

下面是一个例子:

function addOne(&$num){

$num = $num + 1;

echo $num;

}

$number = 5;

addOne($number);

echo $number;

上述代码中,函数addOne的参数$num是按引用传递的。在函数内部对$num进行了加一操作,并打印出结果。然后在外部调用函数,并打印出修改后的$number。运行结果如下:

6

6

从上述运行结果可以看出,函数内部对参数的修改直接影响到了外部的变量值。

需要注意的是,当使用引用传递时,需要确保在函数调用之前已经声明了传递的变量。

3. 默认参数值

在PHP中,函数的参数还可以设置默认值。这样,当我们调用函数时,如果没有传递该参数的值,将会使用默认值。

下面是一个例子:

function sayHello($name = "PHP"){

echo "Hello, " . $name;

}

sayHello(); // 输出:Hello, PHP

sayHello("John"); // 输出:Hello, John

上述代码中,函数sayHello的参数$name设置了默认值"PHP"。当我们调用函数sayHello时,如果不传递参数,将会使用默认值;如果传递参数,将会使用传递的值。运行结果如下:

Hello, PHP

Hello, John

需要注意的是,如果函数的参数有默认值,那么该参数必须放在参数列表的最后。

小结

在PHP中,函数参数传递有三种方式:传值方式、引用传递方式和默认参数值。传值方式是最常见的方式,不会影响原始值;引用传递方式可以直接修改原始值;默认参数值可以为参数提供默认值。

在使用函数参数时,根据实际需求选择合适的传递方式可以提高代码的可维护性和复用性。

后端开发标签