जब मैं php में अभ्यास कर रहा था, मैंने देखा है, जो निम्न भाव अजीब परिणाम:अभिव्यक्ति 011 == 11 क्यों गलत है?
011 == 11 // false
'011' == 11 // true
वे दोनों एक ही परिणाम का मूल्यांकन नहीं करना चाहिए?
जब मैं php में अभ्यास कर रहा था, मैंने देखा है, जो निम्न भाव अजीब परिणाम:अभिव्यक्ति 011 == 11 क्यों गलत है?
011 == 11 // false
'011' == 11 // true
वे दोनों एक ही परिणाम का मूल्यांकन नहीं करना चाहिए?
इसका कारण यह है 011
प्रमुख 0
की वजह से एक अष्टाधारी मूल्य के रूप में व्यवहार किया जाता है।
यहाँ अधिक गहराई से व्याख्या दी गई है:
011
शाब्दिक एक अष्टाधारी के रूप में मान्यता प्राप्त है मूल्य9
9 == 11 // false
'011' == 11
के रूप में, यह true
का मूल्यांकन करता है, क्योंकि जब स्ट्रिंग की तुलना पूर्णांक से की जाती है, तो यह पूर्णांक मान के साथ भी मिलती है। दिलचस्प बात यह है कि स्ट्रिंग में अग्रणी शून्य को proccess में अनदेखा किया जाता है और php दुभाषिया मूल्य को के रूप में एक अंडाकार एक के बजाय दशमलव मानता है!
बहुत अच्छी व्याख्या। –
मुझे अज्ञात प्रतिनिधित्व के बारे में पता था जब निर्विवाद था लेकिन वास्तव में उद्धृत, दिलचस्प के लिए इसे माना जाता था! –
सच है! 'var_dump (011 == 9);' 'var_dump (011 === 9);' – Progrock