Neden () hiçbir çıktı sprintf'i değil mi?

3 Cevap php

Ben önce bu işlevleri hiç kullanmadım ama sprintf hakkında çok () okuduktan sonra, ben bunu tanımak gerektiğine karar verdi.

Ben önde gitti ve aşağıdaki yaptım.

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

Hiçbir şey yazdırır. Öte yandan printf () işlevi kullanılması:

printf(currentDateTime());

Sadece iyi sonucu yazdırır. Yani bu 2 fonksiyonlar ve nasıl düzgün sprintf () fonksiyonu kullanırım arasındaki fark nedir?

3 Cevap

sprintf() bir dize döndürür, printf() görüntüler.

Aşağıdaki iki eşittir:

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

sprintf() bir dizeye sonucu yazdırır. printf() standart çıktı yani onu yazdırır:

printf(currentDateTime());

eşdeğerdir:

echo sprintf(currentDateTime());

printf () bir dize verir iken sprintf () bir dize döndürür. Yani aşağıdaki gibi bir şey yapmak zorunda olurdu:

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