Мы могли бы сделать это функциональным способом, используя every
( https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/every )
function compareArrays(array1, array2) {
if (array1.length === array2.length)
return array1.every((a, index) => a === array2[index])
else
return false
}
// test
var a1 = [1,2,3];
var a2 = [1,2,3];
var a3 = ['a', 'r', 'r', 'a', 'y', '1']
var a4 = ['a', 'r', 'r', 'a', 'y', '2']
console.log(compareArrays(a1,a2)) // true
console.log(compareArrays(a1,a3)) // false
console.log(compareArrays(a3,a4)) // false
Для передачи ссылкой с помощью call_user_func_array()
параметр в массиве должен быть ссылкой - это не зависит от функционального определения, передается ли это ссылкой. Например, это работало бы:
function toBeCalled( &$parameter ) {
//...Do Something...
}
$changingVar = 'passThis';
$parameters = array( &$changingVar );
call_user_func_array( 'toBeCalled', $parameters );
См. примечания по call_user_func_array()
функциональная документация для получения дополнительной информации.
За исключением того, что здесь используются устаревшие функции. Вы сгенерируете предупреждение в PHP5, что сделает его менее чем идеальным.
Предупреждение: передача по ссылке во время вызова устарела; Если вы хотите передать его по ссылке, измените объявление имени функции времени выполнения. Если вы хотите включить передачу по ссылке во время вызова, вы можете установить для allow_call_time_pass_reference значение true в вашем INI-файле в ...
К сожалению, насколько я могу судить, другого варианта нет .