函数中有两个数组需要更改。如何传递该数组?我知道的方法是将 2 个数组声明为函数中的全局变量:
function myfunc(){
global $arr1;
global $arr2;
//do something
}
这是否有意义,是否可以传递两个数组作为引用?如何(如果是)?
以下是通过
引用传递它们的方法,请按如下方式定义函数:
function myfunc(&$arr1, &$arr2) {
// ... modify arrays here
}
只需在要通过引用传递的函数参数前面加上一个&
即可。 现在,当函数接收到它们时,它们是引用。
调用函数时,您不必(也不应该)将&
放在变量前面,因为这会导致调用时按引用传递通知。 只需像往常一样将它们传递给您的函数$res = myfunc($first, $second);
请参阅按引用传递
是的,您可以将数组作为引用传递,这比使用全局变量更可取。
function myfunc( array &$arr1, array &$arr2 ) {
// do something
}
myfunc( $someArray, $someOtherArray );
函数定义中的&
告诉 PHP 传递引用而不是值。
我会采取另一种方法(如果数组不是太大......)来明确调用该函数的位置,原始数组将被更改(尽管我可能永远不会在一个函数中更改两个全局数组......
函数调用:
list($array1, $array2) = myfunc($array1, $array2);
功能:
function myfunc($array_x, $array_y){
//do something
return array($array_x, $array_y);
}