TGViewer
Пых Пых @phpyh · 7.83K subscribers
Post #106 1.98K
Подведу итоги прений.

Однозначного ответа конечно же нет, есть ±, компромиссы и предпочтения 🤪

Вариант с передачей по ссылке:
➕ немногословный;
➕ менее затратный по ресурсам;
➖ вызов $this->processByReference($value1, $value2) при чтении не выглядит как мутация переменных, это затрудняет ревью и поддержку;
➖ передача по ссылке — побочный эффект для контекста вызывающей функции.

Вариант с возвращением кортежа:
➖ более многословный (хотя выглядит все равно опрятно);
➖ потребует дополнительную память на массив (но разговоры про это пахнут нанооптимизацией);
➕ строка [$value1, $value2] = $this->processAndReturnTuplet($value1, $value2) говорит сама за себя — я преобразую значения этих переменных;
➕ передача значений копированием оставляет нам шанс написать чистый (pure) метод.

Ещё было предложено возвращать объект, но это, по сути, частный случай второго варианта. Персональный тип для результата приватного метода избыточен, с @psam-return array{string, int} Psalm и без него отловит все ошибки.

Всем спасибо за обсуждение!
Я выбираю второй вариант с кортежем, так как поддерживаемость и прозрачный control flow перевешивают 😉
More from @phpyh
  1. Sep 30, 2026🍺 BeerPHP AI Moscow Кажется, «неделя PHP» потихоньку превращается в месяц PHP. 😅 Будет 2…
  2. Sep 28, 2026Запустили Пыхник и неделю PHP! Залетайте на первый открытый доклад от Дмитрия Dantes про к…
  3. Sep 15, 2026Сейчас один человек с AI может выполнять работу целого IT-отдела. Только хуёво
  4. Sep 12, 2026Спасибо за заявки! Всем напишу в понедельник. Осталось 1 место.
  5. Sep 11, 2026Хардкорный курс асинхронного PHP https://hardcourse.ru/php/async
  6. Sep 11, 2026Ещё полчасика надо — сайт готов, расписываю программу! 🙏
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →