I don't think there's an overarching rule, it depends on what it's going to do as to whether it makes sense to use a reference or a copy. Just a quick survey of two functions, and the first uses copies of the arrays, while the second modifies via a reference:
From www.php.net/array_merge
array array_merge ( array $array1 [, array $... ] )
From www.php.net/array_walk_recursive
bool array_walk_recursive ( array [B][COLOR="#B22222"]&[/COLOR][/B]$array , callable $callback [, mixed $userdata = NULL ] )
^
|
So the gist of that is you can always check the documentation when you need to know (and if your editor is really smart, it may show you that, as well).