Вы используете передачу по ссылке, когда хотите изменить результат, и это все, что нужно.
Помните также, что в PHP объекты всегда передача по ссылке.
Лично я нахожу PHP-систему копирования значений неявным образом (я думаю, что она защищает от случайного изменения) громоздкой и не интуитивно понятной, но потом я снова начал использовать строго типизированные языки, что, вероятно, объясняет это. Но мне интересно, что объекты отличаются от обычной работы PHP, и я принимаю это как доказательство того, что механизм неявного копирования PHP действительно не является хорошей системой.