Задать вопрос

Нормально ли использовать sprintf() для конкатенации строк в php?

Является ли нормальным использование sprintf() для конкатенации строк в php?

Лично мне очень не нравится, как выглядит конкатенация строк с использованием точки и разрывов строки, особенно, когда итоговая строка собирается из большого количества частей. Гораздо лучше, как мне кажется, выглядит вариант с шаблоном и передачей параметров.

Хотел бы поинтересоваться у опытных разработчиков php, не является ли данный подход моветоном? И много ли более затратным по ресурсам, чем простая конкатенация?
  • Вопрос задан
  • 3810 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Используйте функции в соответствии с их предназначением.
Если вам не нравится mess код в представлениях, используйте шаблонизаторы. Например Smarty.
Альтернатива шаблонизаторам - использование простого шаблона вместе с str_replace. Это достаточно быстрая функция и обладает необходимой гибкостью. Вы можете передавать массивы в качестве аргументов, что очень удобно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@young8junkie
в компонентах симфони пару раз видел sprintf(). Не моветон, можешь использовать, главное если начал - то делай так во всём проекте. Единобразие важнее.
Ответ написан
Комментировать
@Snewer
С точкой (а при выводе лучше и с запятой) будет гораздо быстрее
Ответ написан
Комментировать
greabock
@greabock
Могу
Делать-то можно. Хоть так, хоть всяко. Хоть в массив значения забить и потом его через implode() собрать. Это же PHP - тут даже строки на булевы значения умножать можно. Однако, эту функцию принято использовать для подстановки переменных. В других случаях (например сборка url) лучше использовать конкатенацию.
Ответ написан
Комментировать
@keksu Автор вопроса
Спасибо за ответы, решил не использовать sprintf() для таких нужд. Взгляну на код, попробую более красивый вариант с обработкой переменных в строках с простым или фигурным синтаксисом, а также вариант с простым шаблоном и str_replace().
По теме еще сегодня нашел сравнение скорости для конкатенации и sprintf():
micro-optimization.com/string-concatenation-with-s...
micro-optimization.com/string-concatenation-with-d...
Надеюсь, кому-то как и мне когда-нибудь пригодится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы