Dans ce cas-ci, tout que vous êtes économie est une opération de copie de la rangée originale.
Les 2 dernières lignes sont pourquoi le dépassement par valeur est normalement preferred, ensuite
grande rangée compliquée de $some_dataset = de //
$processed = process_list ($some_dataset) ;
Vous finissez normalement vers le haut avec 2 rangées, $some_dataset et $processed, qui sont différents.
Si le process_list prend une rangée par la référence, alors ces deux lignes finissent réellement vers le haut avec $some_dataset et $processed étant 2 COPIES de la même chose des rangées (pas la référence, copient par valeur).
Les tâches de rangée sont toujours copie-par-valeur, à moins qu'et sont employées pour copier la référence.
l'array_slice par lui-même crée une copie du sous-ensemble.
Les 2 fonctions de sorte renvoient également de nouvelles rangées.
Vous êtes probablement juste collage plus aisé au dépassement par des valeurs à moins que vous le comprenniez vraiment.
FWIW, pour sauver une opération de copie simple, les 2 dernières lignes serait
grande rangée compliquée de $some_dataset = de //
process_list ($some_dataset) ; // et continuent à employer $some_dataset après cette ligne