Se per qualche motivo usate la reflection o la call_user_func e dovete sfruttare una funzione PHP che gestisce le variabili by reference ... ma non vi lascia impostarle come volete causa WARNING ... questo è l'unico modo che ho trovato per raggirare l'assurdità in questione 
codice:
function unshift(){
for($ref = new ReflectionFunction('array_unshift'), $args = array(&$this->array), $arguments = func_get_args(), $i = 0, $length = count($arguments); $i < $length; $i++)
$args[] = $arguments[$i];
return $ref->invokeArgs($args);
}
mentre se usate il codice da me postato in questa pagina avrete qualche problema ... che son sicuro non risolveranno 
[edit]
quick and dirty e probabilmente slower ...
codice:
function unshift(){
$ref = new ReflectionFunction('array_unshift');
$arguments = func_get_args();
return $ref->invokeArgs(array_merge(array(&$this->arr), $arguments));
}