Question

Je n’avais jamais utilisé ces fonctions auparavant, mais après avoir beaucoup lu sur sprintf (), j’ai décidé de le connaître.

Alors je suis allé de l'avant et j'ai fait ce qui suit.

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

Cela n'imprime rien. En utilisant la fonction printf (), en revanche:

printf(currentDateTime());

Cela imprime parfaitement le résultat. Alors, quelle est la différence entre ces 2 fonctions et comment utiliser correctement la fonction sprintf ()?

Était-ce utile?

La solution

sprintf () renvoie une chaîne, printf () l'affiche.

Les deux suivants sont égaux:

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

Autres conseils

sprintf () affiche le résultat dans une chaîne. printf () l’imprime sur la sortie standard, par exemple:

printf(currentDateTime());

est équivalent à:

echo sprintf(currentDateTime());

sprintf () renvoie une chaîne, tandis que printf () en génère une. Vous devez donc faire quelque chose comme ce qui suit:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top