Я бы спросил себя, каков ожидаемый вариант использования функции.Типичный вариант использования предполагает сохранение исходных данных в целости и получение новых данных из них, или явный вариант использования этой функции для изменения данных на месте?
Скажем, md5
изменит данные на месте,было бы довольно неудобно, так как я обычно хочу сохранить исходные данные нетронутыми.Поэтому я всегда должен был делать это:
$hash = $data;
md5($hash);
вместо:
$hash = md5($data);
Это довольно уродливый код, навязанный вам API этой функции.
Однако для unset
я не думаю, что типичный вариант использования предназначен для получения новых данных:
$arr = unset($arr['foo']);
Это выглядит довольно неуклюжим, а также, возможно, ударом по производительности.