कारण PHP एक संदर्भ विशिष्ट तरीके से चर का इलाज है। यह विजुअल बेसिक के समान ही है।
अभिव्यक्ति 'a' + 1
गणितीय जोड़ का उपयोग करता है। इस संदर्भ में a
को एक संख्या के रूप में व्याख्या किया गया है, इसलिए इसे 0 माना जाएगा (यदि आप सी से परिचित हैं, तो यह atoi()
में स्ट्रिंग "ए" को खिलाने जैसा है)।
यदि आप अभिव्यक्ति 'a' . 1
अभिव्यक्ति का उपयोग करेंगे तो परिणाम a1
स्ट्रिंग concatenation का उपयोग कर इसके कारण होगा।
परिणाम प्राप्त करने के लिए आपको उम्मीद है (b
), आपको chr(ord('a') + 1)
का उपयोग करना होगा, जहां ord()
स्पष्ट रूप से (पहले) वर्ण के ASCII मान को लौटाता है।
$a++
एक विशेष मामला है, अनिवार्य रूप से एक अधिभार चर के रूप में मूल्य ही के बजाय ascii मूल्य पर देख रहा है।
आपका क्या मतलब है? : "खासकर जब से कमीशन ऑपरेटर इस मामले में नो-ऑप हैं"। – Shubham
वास्तव में, मैं इसे अनिवार्य रूप से अजीब नहीं कहूंगा। यह अनिवार्य रूप से 25 के आधार (संख्याओं के बजाय अक्षरों के साथ) का उपयोग कर मानक गणितीय नियमों का पालन करना है। – Mario
@ शुभम "नो-ऑप" का अर्थ है "कोई ऑपरेशन नहीं", यानी कुछ भी नहीं होता है। यह पहले उदाहरण से ठीक पहले समझाया गया है: http://php.net/manual/en/language.operators.increment.php – Mario