为什么sprintf()输出什么?

时间:2009-06-20 14:38:30

标签: php printf

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

3 个答案:

答案 0 :(得分:57)

sprintf()会返回一个字符串,printf()会显示该字符串。

以下两个是平等的:

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

答案 1 :(得分:14)

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

printf(currentDateTime());

相当于:

echo sprintf(currentDateTime());

答案 2 :(得分:6)

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);

http://www.php.net/sprintf

http://www.php.net/printf