Я стараюсь избегать эталонных параметров, таких как чума: очевидно, что они делают в тот момент, когда вы их определяете, но большую часть времени вы будете смотреть на их использование, а там неясновообще, являются ли эти параметры побочными или побочными.
Придерживаться парадигмы возврата в виде массива более читабельно и позволяет избежать побочных эффектов;он также позволяет выполнять вызовы функций вложенности / объединения в цепочку - стиль, который выглядит следующим образом в действии:
$output = nl2br(
detect_links(
htmlspecialchars(
trim($input))))
Если у вас есть несколько функций, возвращающих один и тот же тип коллекции значений, возможно, стоит обернуть ихв классе - таким образом ваше возвращаемое значение становится более информативным даже без комментариев (phpdoc), и вы сможете перехватывать неверный ввод для других функций, которые используют такие значения, добавляя подсказки типов в аргумент функции.
Также обратите внимание, что объекты уже являются ссылочными типами, поэтому передача их по ссылке имеет смысл, только если вы хотите заменить весь объект - изменение отдельных полей или вызов деструктивных методов изменят исходный объект, даже если вы передали его по значению.Пример:
<?php
class Bar {
public $x;
public function __construct($x) { $this->x = $x; }
}
function foo($bar, $x) {
$bar->x = $x;
}
$myBar = new Bar(23);
$foo($myBar, 42);
printf("$foo->x is now %s\n", $foo->x);