Использование 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()
, но выводит отформатированную строку вместо ее возврата (в переменную).
Что является более читабельным?