質問

これらの関数を使用したことはありませんが、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());

結果は問題なく印刷されます。これら2つの関数の違いは何ですか?また、sprintf()関数を適切に使用するにはどうすればよいですか?

役に立ちましたか?

解決

sprintf()は文字列を返し、 printf()はそれを表示します。

次の2つは同等です:

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

他のヒント

sprintf()は、結果を文字列に出力します。 printf()は標準出力に出力します:

printf(currentDateTime());

は次と同等です:

echo sprintf(currentDateTime());

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top