使用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);
where printf()
等效于sprintf()
,但是它输出格式化的字符串,而不是将其返回(返回到变量)。
哪个更易读?