php函数参数传递有五种方式:一、按值传递(默认,不修改原变量);二、按引用传递(用&,可修改原变量);三、func_get_args()处理可变参数;四、...操作符实现参数解构;五、设置默认参数值提升灵活性。

如果您在编写PHP代码时需要向函数传递数据,则必须了解PHP中参数传递的不同方式。以下是实现PHP函数参数传递的多种方法:
一、按值传递参数
按值传递是PHP默认的参数传递方式,函数内部对参数的修改不会影响原始变量的值。该方式适用于不需要在函数内改变原始变量内容的场景。
1、定义函数时直接声明参数名,不加任何修饰符。
2、调用函数时传入变量或字面量,例如 myFunction($a) 或 myFunction(42)。
立即学习“PHP免费学习笔记(深入)”;
3、在函数体内对参数进行赋值或运算,原始变量值保持不变。
二、按引用传递参数
按引用传递允许函数内部直接操作原始变量,所有对参数的修改都会反映到调用处的变量上。该方式适用于需在函数中修改外部变量值的情形。
1、在函数定义的参数前添加 & 符号,例如 function modifyValue(&$var) { ... }。
2、调用函数时传入变量(不能是表达式或字面量),例如 modifyValue($x)。
3、在函数体内对 $var 的赋值将同步更新 $x 的值。
三、使用可变参数列表(func_get_args)
当函数需接收不确定数量的参数时,可借助内置函数 func_get_args() 动态获取全部实参,实现灵活的参数处理逻辑。
1、函数定义时不声明具体参数,仅保留空括号,例如 function sum() { ... }。
2、在函数体内调用 func_get_args() 获取一个包含所有传入参数的数组。
3、遍历该数组执行相应操作,如累加、拼接或校验。
四、使用参数解构(PHP 5.6+ 的 ... 操作符)
通过展开运算符 ... 可将数组或Traversable对象直接作为多个参数传入函数,也可在函数定义中接收任意数量的参数并自动打包为数组。
1、定义函数时在最后一个参数前加三个点,例如 function concat(...$parts) { ... }。
2、调用时可传入多个值:concat("a", "b", "c"),或展开数组:concat(...$arr)。
3、函数体内 $parts 即为包含所有实参的索引数组。
五、使用默认参数值
为函数参数指定默认值后,调用时若未提供对应实参,将自动采用预设值,提升函数调用的灵活性与容错性。
1、在函数定义中为参数赋初值,例如 function greet($name = "Guest") { ... }。
2、调用时可省略该参数:greet(),此时 $name 值为 "Guest"。
3、若传入实参,则覆盖默认值,例如 greet("Alice") 中 $name 为 "Alice"。










