Нормально ли использовать sprintf() для конкатенации строк в php?
Является ли нормальным использование sprintf() для конкатенации строк в php?
Лично мне очень не нравится, как выглядит конкатенация строк с использованием точки и разрывов строки, особенно, когда итоговая строка собирается из большого количества частей. Гораздо лучше, как мне кажется, выглядит вариант с шаблоном и передачей параметров.
Хотел бы поинтересоваться у опытных разработчиков php, не является ли данный подход моветоном? И много ли более затратным по ресурсам, чем простая конкатенация?
Используйте функции в соответствии с их предназначением.
Если вам не нравится mess код в представлениях, используйте шаблонизаторы. Например Smarty.
Альтернатива шаблонизаторам - использование простого шаблона вместе с str_replace. Это достаточно быстрая функция и обладает необходимой гибкостью. Вы можете передавать массивы в качестве аргументов, что очень удобно.
в компонентах симфони пару раз видел sprintf(). Не моветон, можешь использовать, главное если начал - то делай так во всём проекте. Единобразие важнее.
Делать-то можно. Хоть так, хоть всяко. Хоть в массив значения забить и потом его через implode() собрать. Это же PHP - тут даже строки на булевы значения умножать можно. Однако, эту функцию принято использовать для подстановки переменных. В других случаях (например сборка url) лучше использовать конкатенацию.
Спасибо за ответы, решил не использовать sprintf() для таких нужд. Взгляну на код, попробую более красивый вариант с обработкой переменных в строках с простым или фигурным синтаксисом, а также вариант с простым шаблоном и str_replace().
По теме еще сегодня нашел сравнение скорости для конкатенации и sprintf(): micro-optimization.com/string-concatenation-with-s... micro-optimization.com/string-concatenation-with-d...
Надеюсь, кому-то как и мне когда-нибудь пригодится.