Використання 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()
, але він видає відформатовану рядок, а не повертає її (до змінної).
Що читає?