Domanda

Non ho mai usato queste funzioni prima, ma dopo aver letto molto su sprintf (), ho deciso che avrei dovuto conoscerlo.

Quindi sono andato avanti e ho fatto quanto segue.

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

Non stampa nulla. Utilizzando invece la funzione printf ():

printf(currentDateTime());

Stampa il risultato bene. Quindi qual è la differenza tra queste 2 funzioni e come posso usare correttamente la funzione sprintf ()?

È stato utile?

Soluzione

sprintf () restituisce una stringa, printf () la visualizza.

I seguenti due sono uguali:

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

Altri suggerimenti

sprintf () stampa il risultato su una stringa. printf () lo stampa sull'output standard, ad esempio:

printf(currentDateTime());

è equivalente a:

echo sprintf(currentDateTime());

sprintf () restituisce una stringa mentre printf () restituisce una stringa. Quindi dovresti fare qualcosa del tipo:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top