मुझे लगता है कि यह सवाल थोड़ा भ्रामक है, क्योंकि जावा में स्ट्रैसिंग () केवल एक स्ट्रिंग को कुछ करने का एक तरीका नहीं है। यही (स्ट्रिंग) या String.valueOf () के माध्यम से कास्टिंग होता है, और यह PHP में भी काम करता है।
// Java
String myText = (string) myVar;
// PHP
$myText = (string) $myVar;
ध्यान दें कि यह समस्याग्रस्त हो सकता है क्योंकि जावा टाइप-सुरक्षित है ( अधिक विवरण के लिए यहां देखें )।
लेकिन जैसा कि मैंने कहा, यह कास्टिंग है और इसलिए जावा के इनस्ट्रिंग () के बराबर नहीं है।
जावा में स्ट्रिंग केवल एक स्ट्रिंग के लिए एक वस्तु नहीं डालती है। इसके बजाय यह आपको स्ट्रिंग प्रतिनिधित्व देगा । और यही PHP में __toString () करता है।
// Java
class SomeClass{
public String toString(){
return "some string representation";
}
}
// PHP
class SomeClass{
public function __toString()
{
return "some string representation";
}
}
और दूसरी तरफ से:
// Java
new SomeClass().toString(); // "Some string representation"
// PHP
strval(new SomeClass); // "Some string representation"
"स्ट्रिंग प्रतिनिधित्व देने" से मेरा क्या मतलब है? लाखों पुस्तकों के साथ एक पुस्तकालय के लिए एक वर्ग की कल्पना करो।
- उस कक्षा को एक स्ट्रिंग पर ले जाना (डिफ़ॉल्ट रूप से) डेटा को परिवर्तित कर देगा, यहाँ सभी पुस्तकें, एक स्ट्रिंग में, ताकि स्ट्रिंग बहुत लंबी हो जाए और अधिकांश समय या तो बहुत उपयोगी न हो।
- इसके बजाय स्ट्रिंग करने के लिए आप स्ट्रिंग प्रतिनिधित्व दे देंगे, यानी, केवल पुस्तकालय का नाम। यह छोटा है और इसलिए आपको कम, लेकिन अधिक महत्वपूर्ण जानकारी देता है।
ये दोनों मान्य दृष्टिकोण हैं लेकिन बहुत अलग लक्ष्यों के साथ, न तो हर मामले के लिए एक सही समाधान है और आपको समझदारी से चुना जाना चाहिए जो आपकी आवश्यकताओं के लिए बेहतर है।
ज़रूर, और भी विकल्प हैं:
$no = 421337 // A number in PHP
$str = "$no"; // In PHP, stuff inside "" is calculated and variables are replaced
$str = print_r($no, true); // Same as String.format();
$str = settype($no, 'string'); // Sets $no to the String Type
$str = strval($no); // Get the string value of $no
$str = $no . ''; // As you said concatenate an empty string works too
ये सभी विधियाँ एक स्ट्रिंग लौटाएंगी, उनमें से कुछ का उपयोग __toString आंतरिक रूप से और कुछ अन्य वस्तुओं पर विफल होंगे। अधिक जानकारी के लिए PHP प्रलेखन पर एक नज़र डालें ।
print_r(foo, true)
)!