为什么 sprintf() 不输出任何东西?

2022-08-30 21:26:54

我以前从未使用这些函数,但在阅读了很多关于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());

它不打印任何内容。另一方面使用 printf() 函数:

printf(currentDateTime());

它打印结果很好。那么这两个函数有什么区别,我如何正确使用sprintf()函数?


答案 1

sprintf()返回一个字符串,并显示它。printf()

以下两者相等:

printf(currentDateTime());
print sprintf(currentDateTime());

答案 2

sprintf()将结果打印到字符串中。 将其打印到标准输出,即:printf()

printf(currentDateTime());

等效于:

echo sprintf(currentDateTime());

推荐