PHP में एक स्ट्रिंग के लिए एक पूर्णांक परिवर्तित


501

क्या PHP में स्ट्रिंग को पूर्णांक में बदलने का एक तरीका है?


8
PHP शिथिल टाइप की है। एक बार एक पूर्णांक क्या था, एक स्ट्रिंग भी हो सकती है, उदाहरण के लिए जब आप echoइसे (तथाकथित स्ट्रिंग संदर्भ में उपयोग किया जाता है )।
हैकर

2
@ ठाकरे हाँ php शिथिल टाइप किया गया है और गूँज स्ट्रिंग संदर्भ में मूल्य मुद्रित करेगा। लेकिन यह एक चर के डेटाटाइप को आंतरिक रूप से नहीं बदलता है। इसलिए, स्ट्रोक ($ चर) सही है।
vivek_23

@ विवेक: आंतरिक रूप से न तो strval()बदलता है और $variableन ही।
13

2
मेरा मतलब था $ चर = स्ट्रोक ($ चर);
vivek_23 6

जवाबों:


781

आप strval()संख्या को स्ट्रिंग में बदलने के लिए फ़ंक्शन का उपयोग कर सकते हैं ।

एक रखरखाव के दृष्टिकोण से यह स्पष्ट है कि आप कुछ अन्य गूढ़ उत्तर के बजाय क्या करने की कोशिश कर रहे हैं। बेशक, यह आपके संदर्भ पर निर्भर करता है।

$var = 5;

// Inline variable parsing
echo "I'd like {$var} waffles"; // = "I'd like 5 waffles

// String concatenation 
echo "I'd like ".$var." waffles"; // I'd like 5 waffles

// Explicit cast 
$items = (string)$var; // $items === "5";

// Function call
$items = strval($var); // $items === "5";

2
अच्छी बात। मैंने इसे साफ करने के लिए कुछ mysql_escape_string फ़ंक्शन में फेंक दिया।
क्रिस थॉम्पसन

6
mysql_escape_string के बाद से संपादित किया गया है क्योंकि यह चारसेट की उपेक्षा करता है।
Kzqai

7
@Kzai किसी के लिए भी जो इस उदाहरण को देखता है और कोशिश करता है कि इंजेक्शन के हमलों से बचें, मैं कहूंगा कि तार से बचने के अपने प्रयासों को छोड़ दें और तैयार बयानों का उपयोग करें
chacham15

22
5 वर्षों के बाद मैंने अंततः एसक्यूएल उदाहरण को हटा दिया क्योंकि यह प्रश्न का उत्तर देने के लिए अनावश्यक था और भ्रम की स्थिति पैदा की।
क्रिस थॉम्पसन

3
चेतावनी !! जब स्ट्रिंग में कनवर्ट करने आप कुछ संख्या में पार कर लेते हैं php उन्हें दौर होगा: strval(0.999999997)रिटर्न 1
danielson317

86

ऐसा करने के कई तरीके हैं।

दो उदाहरण:

 $str = (string) $int;
 $str = "$int";     

अधिक के लिए प्रकार की बाजीगरी पर PHP मैनुअल देखें ।


25
@ जैज़ेरस यदि $ var 0 (शून्य) के बराबर है, जो एक खाली स्ट्रिंग बन जाता है। समस्याग्रस्त।
साइमन फोर्सबर्ग

5
परिवर्तित 0करना ""बुरा नहीं हो सकता है; यह वास्तव में आवेदन पर निर्भर करता है। उस ने कहा, आप एक अच्छी बात करते हैं।
WNRosenberg

2
$ f = 0; गूंज "$ f"; मेरे साथ ठीक काम करता है, शून्य अभी भी शून्य रहता है। इसलिए मैं "$ var" को एक स्मार्ट / उपयोगी उत्तर के रूप में मानता हूं। आश्चर्यजनक 9999999 लूप्स (स्ट्रिंग) 0.4046459 लेता है ... जबकि "$ var" 0.3725229 लेता है ... कोई अंतर नहीं।
Melsi

45
$foo = 5;

$foo = $foo . "";

अब $fooएक तार है।

लेकिन, आप कास्टिंग करने की आदत डाल सकते हैं। चूंकि कास्टिंग उस तरह के कुछ को पूरा करने का उचित तरीका है:

$foo = 5;
$foo = (string)$foo;

दूसरा तरीका उद्धरणों में संलग्न करना है:

$foo = 5;
$foo = "$foo"

इतना अविश्वसनीय रूप से अजीब है कि हम दोनों ने उठाया 5. इसके अलावा, + जावा है।
karim79

मुझे लगता है कि आप वहाँ के भाषाओं के बीच अपने संयोजन वाक्य रचना को मिला रहे हैं।
jason

6
मैं कास्टिंग की ओर झुकता हूं, केवल इसलिए कि यह आपके इरादों को स्पष्ट रूप से स्पष्ट करता है। कास्टिंग का एक और एक ही उद्देश्य है: प्रकार बदलना। अन्य उदाहरण लगभग कुछ संदर्भों में गलतियों की तरह लग सकते हैं।
फ्रैंक किसान

मेरे लिए काम किया .. thnx a
zeetit

10

PHP में स्ट्रिंग को पूर्णांक "कन्वर्ट" करने के कई तरीके हैं।

पारंपरिक कंप्यूटर विज्ञान का तरीका चर को स्ट्रिंग के रूप में डालना होगा:

$int = 5;
$int_as_string = (string) $int;
echo $int . ' is a '. gettype($int) . "\n";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";

आप PHP के अंतर्निहित प्रकार रूपांतरण और स्ट्रिंग प्रक्षेप का लाभ भी ले सकते हैं:

$int = 5;
echo $int . ' is a '. gettype($int) . "\n";

$int_as_string = "$int";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";

$string_int = $int.'';
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";

अंत में, उपरोक्त के समान, कोई भी फ़ंक्शन जो एक स्ट्रिंग को स्वीकार करता है और लौटाता है उसे कन्वर्ट और पूर्णांक के लिए इस्तेमाल किया जा सकता है। निम्नलिखित को धयान मे रखते हुए:

$int = 5;
echo $int . ' is a '. gettype($int) . "\n";

$int_as_string = trim($int);
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";

मैं अंतिम विकल्प की सिफारिश नहीं करूंगा, लेकिन मैंने कोड को जंगली में देखा है जो इस व्यवहार पर निर्भर था, इसलिए सोचा कि मैं इसे पास कर दूंगा।


9

ये सभी उत्तर महान हैं, लेकिन यदि मूल्य शून्य है, तो वे सभी आपको एक खाली स्ट्रिंग लौटाते हैं।

निम्नलिखित का प्रयास करें:

    $v = 0;

    $s = (string)$v ? (string)$v : "0";

2
ध्यान दें कि प्रश्न विशेष रूप से 'पूर्णांक को परिवर्तित करना' कहता है, फ्लोट नहीं। :)
माइक्रोप्रोसेसर बिल्ली

1
कृपया गलती को सुधारें। सही रूप होना चाहिए: $ s = (string) $ v? (स्ट्रिंग) $ v: "0";
नब्बे के दशक

7

उपयोग:

$intValue = 1;
$string = sprintf('%d', $intValue);

या यह हो सकता है:

$string = (string)$intValue;

या:

settype(&$intValue, 'string');

4

रूपांतरण के कई तरीके हैं:

$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123

4

आप या तो पीरियड ऑपरेटर का उपयोग कर सकते हैं और इसे एक स्ट्रिंग भेज सकते हैं (और यह एक स्ट्रिंग पर टाइप किया जाएगा):

$integer = 93;
$stringedInt = $integer . "";

या, अधिक सही ढंग से, आप पूर्णांक को एक स्ट्रिंग में टाइप कर सकते हैं:

$integer = 93;
$stringedInt = (string) $integer;

0

के रूप में यहाँ जवाब अच्छी तरह से प्रदर्शित करता है, हाँ, वहाँ कई तरीके हैं। हालाँकि, PHP में आपको वास्तव में ऐसा करने की आवश्यकता नहीं है। PHP लिखने के लिए "हठधर्मी तरीका" भाषा की ढीली टाइपिंग प्रणाली पर भरोसा करने के लिए है, जो पारदर्शी रूप से आवश्यकतानुसार टाइप करेगा। पूर्णांक मानों के लिए, यह आमतौर पर परेशानी के बिना होता है। आपको फ़्लोटिंग पॉइंट वैल्यूज़ के साथ बहुत सावधान रहना चाहिए, हालाँकि।


मुझे नहीं लगता कि PHP हर समय स्ट्रिंग करने के लिए एक पूर्णांक के लिए मजबूर करेगा। यह इसके लिए करेगा, strlen(12345);लेकिन $x = 12345; echo $x[2];इन सभी के लिए कास्टिंग कार्य काफी उपयोगी हैं और बहुत सारे प्रोग्रामर अपने प्रकारों को अधिक से अधिक जांच रहे हैं।
एलजो वलूगी

0

आप बस निम्नलिखित का उपयोग कर सकते हैं:

$intVal = 5;
$strVal = trim($intVal);

0

मैं कहूंगा कि यह संदर्भ पर निर्भर करता है। strval () या कास्टिंग ऑपरेटर (स्ट्रिंग) का उपयोग किया जा सकता है। हालांकि, ज्यादातर मामलों में PHP तय करेगा कि आपके लिए क्या अच्छा है अगर, उदाहरण के लिए, आप इसे इको या प्रिंटफ के साथ उपयोग करते हैं ...

एक छोटा नोट: मरो () को एक स्ट्रिंग की आवश्यकता है और कोई इंट नहीं दिखाएगा :)


"ज्यादातर मामलों में पीएचपी तय करेगा कि आपके लिए क्या अच्छा है" अद्भुत
:)

0
$amount = 2351.25;
$str_amount = "2351.25";

$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);    //string

तो प्रतिध्वनि वापस स्ट्रिंग होगी ।


" स्ट्रिंग ": शाब्दिक या प्रकार? या कुछ और? क्या आप इसे और अधिक स्पष्ट कर सकते हैं ( अपना उत्तर संपादित करके )?
पीटर मोर्टेनसेन

टिप्पणी के लिए धन्यवाद @ पीटर मोर्टेंसन जो कि रिटर्न प्रकार है "STRING" का अर्थ है कि आपके मूल्य को एक नए चर में एक स्ट्रिंग के रूप में परिवर्तित किया जाना चाहिए। इसीलिए मैंने स्ट्रिंग का संपादन किया
कौशिक श्रीमाली

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.