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


Answers

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

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

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

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

के लिए कि क्या PHP एक दिन इसकी खाई होगी -> सदस्य अभिगम वाक्यविन्यास के लिए . , कौन जानता है?

Question

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

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




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




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

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

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



हालांकि यह ऐतिहासिक कारण नहीं है, यह आपको दिखा सकता है कि PHP के मामले में इसके अलावा एक दूसरे ऑपरेटर को जोड़ने और सम्मिलित करना क्यों अच्छा है।

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

PHP में

echo  5  + 1; //6
echo  5  . 1; //51
echo "5" + 1; //6
echo "5" . 1; //51

यह किसी के लिए आश्चर्य की बात नहीं है क्योंकि हम हमेशा स्पष्ट रूप से कहा है कि हम दो चर जोड़ने या जोड़ना चाहते हैं। या दूसरे शब्दों में यदि हम उनके बारे में संख्याओं या तारों के रूप में सोचते हैं

जावास्क्रिप्ट में

console.log( 5  +  1);  //6
console.log("5" +  1);  //51
console.log( 5  + "1"); //51
console.log("5" + "1"); //51

कैसे हुड के तहत अंतर्निहित प्रकार रूपांतरण होने के बारे में ज्ञान के बिना, कई मामलों में (विशेषकर यदि वे जटिल हैं) आश्चर्यजनक परिणाम हो सकते हैं, क्योंकि हमें नहीं पता कि परिणाम क्या होगा, क्योंकि यह स्पष्ट रूप से नहीं कहा गया है।

पायथन में

पायथन भी कंसनेक्शन और इसके अलावा के लिए + ऑपरेटर का उपयोग करता है, लेकिन यह निहित प्रकार रूपांतरण होने नहीं देता। आपको स्पष्ट रूप से प्रकार रूपांतरण को चिह्नित करना होगा।

print  5  + 1 //6
print "5" + 1 //TypeError: cannot concatenate 'str' and 'int' objects

यह काम करने के लिए हमें टाइप रूपांतरण करना है: a + int(b)

सब मिलाकर

यदि हम इसके बारे में सोचते हैं, तो हम यह देख सकते हैं कि 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 में पर्याप्त नुकसान हो रहे हैं, आपको किसी अन्य को जोड़ने की आवश्यकता नहीं है।