स्प्रिंटफ () का उपयोग करना आपके स्ट्रिंग को प्रारूपित करने के लिए बहुत क्लीनर और सुरक्षित है।
उदाहरण के लिए जब आप इनपुट चर के साथ काम कर रहे होते हैं, तो यह अग्रिम रूप में अपेक्षित प्रारूप निर्दिष्ट करके अप्रत्याशित आश्चर्य को रोकता है (उदाहरण के लिए, कि आप स्ट्रिंग की उम्मीद कर रहे हैं [ %s
] या संख्या [ %d
]]। यह संभावित रूप से SQL इंजेक्शन के संभावित जोखिम के साथ मदद कर सकता है , लेकिन यह स्ट्रिंग को कोट करने से नहीं रोकेगा।
यह फ़्लोट्स से निपटने में भी मदद करता है, आप स्पष्ट रूप से अंक परिशुद्धता (जैसे %.2f
) निर्दिष्ट कर सकते हैं जो आपको परिवर्तित कार्यों का उपयोग करने से बचाता है।
अन्य लाभ यह है कि अधिकांश प्रमुख प्रोग्रामिंग भाषाओं का अपना कार्यान्वयन है sprintf()
, इसलिए एक बार जब आप इसके साथ परिचित हो जाते हैं, तो एक नई भाषा सीखने के बजाय (जैसे कि कैसे तारों को जोड़ना या फ़्लोट्स को परिवर्तित करना) उपयोग करना और भी आसान हो जाता है।
सारांश में, एक क्लीनर और अधिक पठनीय कोड के लिए उपयोग करना एक अच्छा अभ्यास है।
उदाहरण के लिए, नीचे दिया गया वास्तविक उदाहरण देखें :
$insert .= "('".$tr[0]."','".$tr[0]."','".$tr[0]."','".$tr[0]."'),";
या कुछ सरल उदाहरण जो प्रिंट करता है जैसे '1','2','3','4'
:
print "foo: '" . $a . "','" . $b . "'; bar: '" . $c . "','" . $d . "'" . "\n";
और स्वरूपित स्ट्रिंग के साथ मुद्रण:
printf("foo: '%d','%d'; bar: '%d','%d'\n", $a, $b, $c, $d);
जहां printf()
के बराबर है sprintf()
, लेकिन यह इसे (चर के लिए) वापस करने के बजाय एक स्वरूपित स्ट्रिंग को आउटपुट करता है।
कौन सा अधिक पठनीय है?