क्यों एक पूर्ण स्टॉप, "।" और प्लस प्रतीक नहीं, "+", PHP में स्ट्रिंग concatenation के लिए?



Answers

PHP का वाक्यविन्यास पर्ल से प्रभावित है, और . पर्ल में स्ट्रिंग कॉन्सटेनेशन ऑपरेटर है।

एक कमजोर टाइप की गई भाषा में एक अलग स्ट्रिंग कॉन्सटेनेशन और न्यूमेरिक एडिशन ऑपरेटर होने के फायदे हैं: जो आप उपयोग करते हैं, वह इस बात को प्रभावित करेगा कि किस प्रकार की भाषा चर को जोड़ती है।

जैसा कि होता है, पर्ल 6 एक बिंदु के बजाय एक tilde ~ उपयोग करेगा . स्ट्रिंग concatenation के लिए, क्योंकि . ऑब्जेक्ट सदस्य पहुंच के लिए उपयोग किया जाएगा। तो ऐसा लगता है कि पर्ल के डिजाइनर अब सोचते हैं कि यह एक खराब विकल्प था।

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

इस बात के लिए कि PHP एक दिन अपने -> सदस्य पहुंच वाक्यविन्यास को डुबो देगा . , कौन जानता है?

Question

PHP के डिजाइनरों ने पूर्ण स्टॉप / अवधि / "।" का उपयोग करने का निर्णय क्यों लिया स्ट्रिंग कॉन्सटेनेशन ऑपरेटर के रूप में अधिक सामान्य प्लस प्रतीक "+" के बजाय?

क्या इसका कोई फायदा है, या किसी भी कारण से? या वे सिर्फ पसंद करते थे? : ओ)




यह सवाल का जवाब नहीं देता है, बस कुछ साझा करना चाहता था।

PHP मैनुअल से: स्ट्रिंग ऑपरेटर , किसी ने इसे पोस्ट किया जो मुझे दिलचस्प लगता है। ध्यान दें कि आउटपुट में अंतरिक्ष कैसे एक भूमिका निभाता है।

अंश:
यदि आप एक कॉन्सटेनेशन ऑपरेटर के साथ संख्याएं जोड़ने का प्रयास करते हैं, तो आपका परिणाम स्ट्रिंग्स के रूप में उन संख्याओं का परिणाम होगा।

<?php

echo "thr"."ee";           //prints the string "three"
echo "twe" . "lve";        //prints the string "twelve"
echo 1 . 2;                //prints the string "12"
echo 1.2;                  //prints the number 1.2
echo 1+2;                  //prints the number 3

?>



यहां कुछ ऐतिहासिक संदर्भ दिया गया है।

  • PHP भाषा पर्ल स्क्रिप्ट के सेट के रूप में शुरू हुई।
  • इस प्रकार, PHP को पर्ल से इसका अधिकांश वाक्यविन्यास मिलता है।
  • पर्ल, और विस्तार PHP द्वारा, untyped चर है।

         "5"  ==   5
    "5" + 5   ==  10
    "5" . 5   ==  55
    
  • अतिरिक्त और समामेलन के बीच अंतर बताने में सक्षम होने के लिए, उन्हें दो अलग-अलग ऑपरेटर होना था।
  • पर्ल ने सी -> से विधि पहुंच ऑपरेटर की प्रतिलिपि बनाई।
  • इससे पहले कि कई आधुनिक प्रोग्रामिंग भाषाओं का उपयोग करना शुरू हो गया था . विधि पहुंच के लिए।
  • Concatenation अधिक आम परिचालनों में से एक है, और कम वर्णों का उपयोग करना चाहिए। हफमैन कोडिंग के अनुसार।
  • . इस उपयोग के लिए उपलब्ध कुछ पात्रों में से एक था। एकमात्र अन्य जो उपयोग करने के लिए समझ में आता है ~ , शायद यही कारण है कि अब पर्ल 6 कॉन्सटेनेशन ऑपरेटर है।



मुझे लगता है कि ऐसा है ताकि आप तारों के साथ संख्याओं को जोड़ सकें?

$i=100;
$str="hello";
$str2 = $str.$i

चूंकि आप चर प्रकारों की घोषणा नहीं करते हैं, इसलिए + यह "हैलो 100" के बजाय 100 का परिणाम दे सकता है।




PHP में स्ट्रिंग कॉन्सटेनेशन ऑपरेटर के रूप में डॉट का उपयोग शायद पर्ल पर वापस आता है। याद रखें कि PHP एक बार पर्ल स्क्रिप्ट के गुच्छा से ज्यादा कुछ नहीं था।

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




तार्किक रूप से + संख्याओं के लिए प्रयोग किया जाता है। जबकि एक बिंदु को उदाहरण के लिए अनुच्छेद में दो वाक्य (तार) को संयोजित करने के लिए प्रयोग किया जाता है। इसलिए डॉट का उपयोग तारों को संयोजित करने के लिए किया जाता है। तो मुझे विश्वास है कि यह बहुत तार्किक है। यह बेहतर तरीका है ...




Links