我之前从未使用过这些函数,但在阅读了很多关于sprintf()之后,我决定知道它.
所以我继续做下面的事情.
function currentDateTime() {
list($micro, $Unixtime) = explode(" ",microtime());
$sec= $micro + date("s", $Unixtime);
$sec = mb_ereg_replace(sprintf('%d', $sec), "", ($micro + date("s", $Unixtime)));
return date("Y-m-d H:i:s", $Unixtime).$sec;
}
sprintf(currentDateTime());
Run Code Online (Sandbox Code Playgroud)
它什么都不打印.另一方面使用printf()函数:
printf(currentDateTime());
Run Code Online (Sandbox Code Playgroud)
它打印结果就好了.那么这两个函数之间的区别是什么?如何正确使用sprintf()函数?
mol*_*olf 57
sprintf()返回一个字符串,printf()显示它.
以下两个是平等的:
printf(currentDateTime());
print sprintf(currentDateTime());
Run Code Online (Sandbox Code Playgroud)
cle*_*tus 14
sprintf()将结果打印到字符串.printf()将其打印到标准输出,即:
printf(currentDateTime());
Run Code Online (Sandbox Code Playgroud)
相当于:
echo sprintf(currentDateTime());
Run Code Online (Sandbox Code Playgroud)
sprintf()返回一个字符串,而printf()输出一个字符串.所以你必须做以下事情:
function currentDateTime() {
list($micro, $Unixtime) = explode(" ",microtime());
$sec= $micro + date("s", $Unixtime);
$sec = mb_ereg_replace(sprintf('%d', $sec), "", ($micro + date("s", $Unixtime)));
return date("Y-m-d H:i:s", $Unixtime).$sec;
}
$output = sprintf(currentDateTime());
printf($output);
Run Code Online (Sandbox Code Playgroud)