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