2009-06-20 8 views
17

मैंने पहले कभी इन कार्यों का उपयोग नहीं किया है लेकिन sprintf() के बारे में बहुत कुछ पढ़ने के बाद, मैंने फैसला किया कि मुझे इसे जानना चाहिए।क्यों 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() फ़ंक्शन का सही तरीके से उपयोग कैसे करूं?

उत्तर

57

sprintf() एक स्ट्रिंग, printf() यह प्रदर्शित करता है देता है:

printf(currentDateTime()); 

के बराबर है।

निम्नलिखित दो बराबर हैं:

printf(currentDateTime()); 
print sprintf(currentDateTime()); 
+24

मैं सोच '** चुप ** 'printf()'' द्वारा :) – deed02392

+0

@ deed02392 यह याद रखना: तो आप निम्नलिखित की तरह कुछ करने के लिए होगा , क्या वह "स्ट्रिंग" का प्रतिनिधित्व नहीं कर रहा है? – Pacerier

14

sprintf() परिणाम को एक स्ट्रिंग पर प्रिंट करता है। printf() प्रिंट यह मानक आउटपुट यानी करने के लिए:

echo sprintf(currentDateTime()); 
6

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