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?