質問
これらの関数を使用したことはありませんが、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);
所属していません StackOverflow