पीएचपी के प्रलेखन एक सा विरल है और मैं पढ़ लिया है इस समारोह ASCII मूल्यों तुलना कि इतने ..."echo strcmp ('60 ',' 100 ') क्यों है;" PHP उत्पादन 5 में? इस समारोह पर
echo strcmp('hello', 'hello');
//outputs 0 as expected - strings are equal.
echo '<hr />';
echo strcmp('Hello', 'hello');
//outputs -32, a negative number is expected as
//uppercase H has a lower ASCII value than lowercase h.
echo '<hr />';
echo strcmp('60', '100');
//outputs 5.
पिछले उदाहरण मुझे भ्रमित कर रहा है। मुझे समझ में नहीं आता कि यह सकारात्मक संख्या क्यों बना रहा है।
- ASCII 6 = 54
कुल ASCII '60' के मूल्य के 0 = 48
- 1 की ASCII मूल्य = 49
ASCII मूल्य के मूल्य = (54 + 48) = 102
- की '100' = (49 + 48 + 48) = 145
strcmp कुल ASCII मूल्य() फ़ंक्शन रों है aying कि '60' भले ही ऐसा लगता है कि ASCII मूल्य और '100' की स्ट्रिंग लंबाई
किसी को भी व्याख्या कर सकते हैं क्यों '60'
से अधिक है "अधिक" '100' से है?धन्यवाद
ध्यान दें कि यह गारंटीकृत व्यवहार नहीं है - केवल एक चीज की गारंटी है कि इन इनपुट पैरामीटर के लिए मान शून्य से बड़ा होगा। –
@ सिमोन रिचटर: सहमत हैं कि इसकी गारंटी नहीं है। लेकिन यह * पारंपरिक है। कुछ कोड जो मैंने 1 9 78 में लिखा था जो रिटर्न वैल्यू की गणना करने की इस विधि पर निर्भर करता है * अभी भी काम करता है *! – wallyk
@ वैलीक, आप कैसे जानते हैं कि यह उत्तर सही है जब दस्तावेज़ ने यह नहीं कहा कि यह पहले चरित्र का अंतर देता है? – Pacerier