Вопрос

Я никогда раньше не использовал эти функции, но после прочтения большого количества информации о sprintf () я решил, что мне следует узнать об этом.

Поэтому я пошел дальше и сделал следующее.

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

Он ничего не печатает. Использование функции printf () с другой стороны:

printf(currentDateTime());

Он печатает результат просто отлично. Так в чем же разница между этими двумя функциями и как правильно использовать функцию sprintf ()?

Это было полезно?

Решение

sprintf () возвращает строку, printf () отображает ее.

Следующие два равны:

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

Другие советы

sprintf () печатает результат в строку. printf () выводит его на стандартный вывод, т.е.

printf(currentDateTime());

эквивалентно:

echo sprintf(currentDateTime());

sprintf () возвращает строку, а printf () выводит строку. Поэтому вам нужно сделать что-то вроде следующего:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top