Рассмотрим функции sort
и array_reverse
.
Почему один изменяет переданную переменную, а другой возвращает новую версию?
$a = array(3, 1, 2);
sort($a);
// $a === array(1, 2, 3)
array_reverse($a);
// $a === array(1, 2, 3)
sort
можно было бы так же легко написать так, чтобы возвращалась измененная копия аргумента, и наоборот для array_reverse
.
Причина, по которой я спрашиваю, заключается в том, что я хочу знать, существуют ли какие-либо рекомендации для принятия решения о том, следует ли писать функции, используя подход «передача по ссылке и изменение» или подход «проход по ссылке». значение, изменить и вернуть".