PHP में स्ट्रिंग को संख्या में कैसे बदलें: चरण-दर-चरण मार्गदर्शिका

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: स्ट्रिंग्स जोड़ना क्यों नहीं चाहतीं?

\n\n

हर डेवलपर जिसने कभी PHP में कोड लिखा है, उसने ऐसी स्थिति का सामना किया है जहाँ अपेक्षित संख्या के बजाय अजीब परिणाम मिलता है। आप फॉर्म या डेटाबेस से प्राप्त दो वेरिएबल्स को जोड़ने का प्रयास करते हैं, और PHP 35 के बजाय 1520 जैसा कुछ देता है। परिचित लगता है? यह एक क्लासिक समस्या है: PHP में स्ट्रिंग को संख्या में बदलना।

\n\n

PHP एक डायनामिक टाइपिंग वाली भाषा है। यह एक साथ वरदान और अभिशाप दोनों है। एक ओर, यह अनुमान लगाने की कोशिश करता है कि आपका क्या मतलब है और स्वचालित रूप से प्रकारों को परिवर्तित करता है। दूसरी ओर, ऐसे "अनुमान" अक्सर मुश्किल से पकड़ में आने वाली बग्स का कारण बनते हैं। आज हम PHP में स्ट्रिंग को संख्या में बदलने के सभी तरीकों पर चर्चा करेंगे - सरल से लेकर उन्नत तक - और इसे सही तरीके से करना सीखेंगे।

\n\n

त्वरित उत्तर: 30 सेकंड में 4 तरीके

\n\n

यदि आपको त्वरित समाधान चाहिए - यहाँ एक चीट शीट है। लेकिन लेख को बंद करने में जल्दबाजी न करें: प्रत्येक विधि की अपनी विशेषताएं और नुकसान हैं।

\n\n
<?php\n// विधि 1: स्पष्ट प्रकार रूपांतरण\n$number = (int) "42";          // int(42)\n$float  = (float) "3.14";     // float(3.14)\n\n// विधि 2: intval() फ़ंक्शन\n$number = intval("42");       // int(42)\n\n// विधि 3: floatval() / doubleval() फ़ंक्शन\n$float  = floatval("3.14");   // float(3.14)\n\n// विधि 4: settype() का उपयोग करके\n$str = "42";\nsettype($str, "integer");     // अब $str = int(42)\n?>
\n\n

सभी चार विधियाँ काम करती हैं, लेकिन सीमावर्ती स्थितियों में वे अलग-अलग व्यवहार करती हैं। आइए प्रत्येक पर विस्तार से चर्चा करें।

\n\n

1. स्पष्ट प्रकार रूपांतरण: (int) और (float)

\n\n

PHP में स्ट्रिंग को संख्या में बदलने का सबसे तेज़ और सबसे स्पष्ट तरीका प्रकार रूपांतरण ऑपरेटरों का उपयोग करना है। वे वेरिएबल के प्रकार के "जबरन स्विचिंग" की तरह काम करते हैं।

\n\n

(int) के साथ उदाहरण

\n\n
<?php\necho (int) "42";           // 42\necho (int) "3.99";         // 3 (भिन्नात्मक भाग हटा दिया जाता है!)\necho (int) "42 सेब";       // 42 (शुरुआत में संख्या)\necho (int) "सेब 42";       // 0 (संख्या नहीं पहचान सकता)\necho (int) "";             // 0\necho (int) null;           // 0\n?>
\n\n

महत्वपूर्ण: PHP स्ट्रिंग की शुरुआत में संख्या खोजने का प्रयास करता है। यदि स्ट्रिंग अक्षरों से शुरू होती है, तो परिणाम 0 होगा। यह व्यवहार अक्सर त्रुटियों का कारण बनता है, विशेषकर उपयोगकर्ता इनपुट के साथ काम करते समय।

\n\n

(float) के साथ उदाहरण

\n\n
<?php\necho (float) "3.14";       // 3.14\necho (float) "3,14";       // 3.0 (अल्पविराम काम नहीं करता!)\necho (float) "2.99 यूरो";  // 2.99\necho (float) "abc";        // 0\n?>
\n\n

टिप: याद रखें कि PHP दशमलव विभाजक के रूप में बिंदु का उपयोग करता है। यदि उपयोगकर्ता अल्पविराम के साथ संख्याएँ दर्ज करते हैं (जैसा कि भारत में प्रचलित है), तो पहले str_replace(',', '.', $str) के साथ अल्पविराम को बिंदु से बदलना होगा।

\n\n

2. intval() और floatval() फ़ंक्शन

\n\n

ये फ़ंक्शन स्पष्ट रूपांतरण का अधिक "बुद्धिमान" संस्करण हैं। वे वही काम करते हैं, लेकिन intval() के लिए संख्या प्रणाली निर्दिष्ट करने की अनुमति देते हैं।

\n\n
<?php\n// intval() — पूर्णांक में रूपांतरण\necho intval("42");            // 42\necho intval("1010", 2);       // 10 (बाइनरी प्रणाली!)\necho intval("FF", 16);        // 255 (हेक्साडेसिमल)\necho intval("42.99");         // 42 (भिन्नात्मक भाग हटा दिया जाता है)\n\n// floatval() — फ्लोटिंग पॉइंट संख्या में रूपांतरण\necho floatval("3.14");        // 3.14\necho floatval("2.71828");     // 2.71828\n?>
\n\n

कब उपयोग करें: intval() अपरिहार्य है यदि आप विभिन्न संख्या प्रणालियों में संख्याओं के साथ काम कर रहे हैं (उदाहरण के लिए, HEX रंग कोड पार्स करना)। सामान्य संख्याओं के लिए, (int) से लगभग कोई अंतर नहीं है।

\n\n

3. settype() फ़ंक्शन: स्थान पर रूपांतरण

\n\n

पिछली विधियों के विपरीत, settype() कोई नया मान वापस नहीं करता, बल्कि

ब्लॉग

पुस्तक अनुशंसाएँ