Pergunta

Eu nunca usei essas funções antes, mas depois de ler muito sobre sprintf (), decidi que deveria conhecê -lo.

Então fui em frente e fiz o seguinte.

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

Ele não imprime nada. Usando a função printf (), por outro lado:

printf(currentDateTime());

Ele imprime o resultado muito bem. Então, qual é a diferença entre essas duas funções e como uso corretamente a função sprintf ()?

Foi útil?

Solução

sprintf() Retorna uma string, printf() exibe isso.

Os dois seguintes são iguais:

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

Outras dicas

sprintf() Imprime o resultado para uma string. printf() Imprime -o para saída padrão, ou seja:

printf(currentDateTime());

é equivalente a:

echo sprintf(currentDateTime());

sprintf () retorna uma string enquanto printf () produz uma string. Então você teria que fazer algo como o seguinte:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top