Usar sprintf () es mucho más limpio y seguro para formatear su cadena.
Por ejemplo, cuando se trata de variables de entrada, evita sorpresas inesperadas al especificar el formato esperado de antemano (por ejemplo, que espera una cadena [ %s] o el número [ %d]). Potencialmente, esto podría ayudar con el posible riesgo de inyección de SQL , pero no evitará si las cadenas consisten en comillas.
También ayuda a tratar con flotantes, puede especificar explícitamente la precisión de los dígitos (por ejemplo %.2f) que le ahorra el uso de funciones de conversión.
La otra ventaja es que la mayoría de los principales lenguajes de programación tienen su propia implementación sprintf(), por lo que una vez que te familiarizas con él, es aún más fácil de usar, en lugar de aprender un nuevo lenguaje (como cómo concatenar cadenas o convertir los flotantes).
En resumen, es una buena práctica usar para tener un código más limpio y más legible.
Por ejemplo, vea el siguiente ejemplo real :
$insert .= "('".$tr[0]."','".$tr[0]."','".$tr[0]."','".$tr[0]."'),";
O algún ejemplo simple que imprima, por ejemplo '1','2','3','4':
print "foo: '" . $a . "','" . $b . "'; bar: '" . $c . "','" . $d . "'" . "\n";
e impresión con cadena formateada:
printf("foo: '%d','%d'; bar: '%d','%d'\n", $a, $b, $c, $d);
donde printf()es equivalente a sprintf(), pero genera una cadena con formato en lugar de devolverla (a la variable).
¿Cuál es más legible?