Warum gibt sprintf() nichts aus?

Lesezeit: 1 Minute

Benutzer-Avatar
KdgDev

Ich habe diese Funktionen noch nie zuvor verwendet, aber nachdem ich viel über sprintf() gelesen hatte, entschied ich, dass ich es kennenlernen sollte.

Also ging ich weiter und tat Folgendes.

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

Es druckt nichts. Verwenden Sie andererseits die Funktion printf ():

printf(currentDateTime());

Es druckt das Ergebnis ganz gut. Was ist also der Unterschied zwischen diesen beiden Funktionen und wie verwende ich die Funktion sprintf() richtig?

sprintf() gibt eine Zeichenfolge zurück, printf() zeigt es an.

Die folgenden beiden sind gleich:

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

  • Ich erinnere mich daran, indem ich dachte ‘Leise printf()‘ 🙂

    – Urkunde02392

    30. März 2012 um 16:41 Uhr


  • @deed02392, nicht wahr? s repräsentiert “String”?

    – Schrittmacher

    26. Dezember 2014 um 3:50 Uhr

  • Nein, weil printf() gibt auch einen String aus.

    – mickmackusa

    8. April um 3:15

sprintf() gibt das Ergebnis in einen String aus. printf() druckt es auf die Standardausgabe, dh:

printf(currentDateTime());

ist äquivalent zu:

echo sprintf(currentDateTime());

sprintf() gibt einen String zurück, während printf() einen String ausgibt. Sie müssten also etwa Folgendes tun:

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

1015050cookie-checkWarum gibt sprintf() nichts aus?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy