Використання sprintf () набагато чистіше та безпечніше для форматування рядка.
Наприклад, коли ви маєте справу з вхідними змінними, це запобігає несподіваним сюрпризам, попередньо вказавши очікуваний формат (наприклад, що ви очікуєте рядок [ %s] або число [ %d]). Це потенційно може допомогти з можливим ризиком ін'єкції SQL , але це не завадить, якщо рядки складаються з лапок.
Це також допомагає працювати з поплавками, ви можете чітко вказати точність цифр (наприклад %.2f), що рятує вас від використання функцій перетворення.
Інші переваги полягають у тому, що більшість основних мов програмування мають власну реалізацію sprintf(), тож як тільки ви ознайомитесь з нею, використовувати її ще простіше, ніж вивчати нову мову (наприклад, як об'єднати рядки або перетворити плавки).
Підсумовуючи це, це хороша практика, щоб мати більш чистий і читабельний код.
Наприклад, див. Реальний приклад нижче :
$insert .= "('".$tr[0]."','".$tr[0]."','".$tr[0]."','".$tr[0]."'),";
Або якийсь простий приклад, який друкує, наприклад '1','2','3','4':
print "foo: '" . $a . "','" . $b . "'; bar: '" . $c . "','" . $d . "'" . "\n";
та друк із відформатованим рядком:
printf("foo: '%d','%d'; bar: '%d','%d'\n", $a, $b, $c, $d);
де printf()еквівалентно sprintf(), але він видає відформатовану рядок, а не повертає її (до змінної).
Що читає?