使用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(),但它输出一个格式化的字符串而不是返回它(给变量)。
哪个更有可读性?