سؤال

وأنا لم تستخدم هذه الوظائف من قبل ولكن بعد قراءة الكثير عن 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());

وويطبع النتيجة على ما يرام. إذن ما هو الفرق بين هذه الوظائف 2 وكيف يمكنني صحيح استخدم الدالة 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