वहाँ PHP में pareseInt()
के लिए एक सीधा बराबर क्योंकि PHP एक NaN
डेटा प्रकार नहीं है नहीं है। parseInt()
NaN
का उत्पादन करेगा यदि मूल्य को पार्स नहीं किया जा सकता है।
इसके अतिरिक्त, parseInt()
में रेडिक्स पैरामीटर है, जो कोई भी PHP विकल्प आपको नहीं देता है।
लेकिन उस ने कहा, अगर सभी आप क्या करना चाहते एक पूर्णांक में एक स्ट्रिंग की बारी है, तो वहाँ कई विकल्प हैं:
$int = (int)$string;
$int = intval($string);
$int = settype($string,'integer');
उन तीन होगा ठीक उसी तरह सब काम करते हैं। कुछ किनारे के मामले हो सकते हैं जहां intval()
अन्य दो से अलग है, लेकिन सामान्य रूप से, वे एक स्ट्रिंग को int में बदल देंगे। NaN
की अनुपस्थिति में, वे सभी 0
(शून्य) आउटपुट करते हैं यदि स्ट्रिंग गैर संख्यात्मक है और इसे पार्स नहीं किया जा सकता है। लेकिन यह अधिकांश डीबी स्वच्छता उद्देश्यों के लिए पर्याप्त होना चाहिए।
यदि आप वास्तव में NaN
त्रुटि पर चाहते हैं, तो निकटतम आपको null
मिल जाएगा। आप filter_var()
का उपयोग कर प्राप्त कर सकते हैं:
$value = filter_var(FALSE, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
तुम सिर्फ जांच करने के लिए कि स्ट्रिंग संख्यात्मक है चाहते हैं, is_numeric()
समारोह है कि कर सकते हैं:
$bool = is_numeric($string);
हालांकि, यह दशमलव के लिए सच वापस आती है और यह भी के लिए वैज्ञानिक नोटेशन, इसलिए ज्यादातर स्थितियों के लिए बिल्कुल सही नहीं हो सकता है।एक बेहतर विकल्प ctype_digit()
जो सच लौटाता है यदि स्ट्रिंग केवल अंक से बना है है: इस सूट की गैर ई, regex विकल्प है
$bool = ctype_digit($string);
हैं, तो हमेशा वहाँ preg_match()
या preg_replace()
का उपयोग कर, लेकिन इन निश्चित रूप से के लिए overkill रहे हैं इस तरह का परिदृश्य।
चेक [php.net/Type कास्टिंग] (http://php.net/manual/en/language.types.type-juggling.php) – air4x
क्यों न केवल अंतराल का उपयोग करें? – endy