मेरे पास निम्नलिखित कोड है:
$item['price'] = 0;
/* Code to get item information goes in here */
if($item['price'] == 'e') {
$item['price'] = -1;
}
इसका उद्देश्य आइटम की कीमत को 0 पर प्रारंभ करना है और फिर इसके बारे में जानकारी प्राप्त करना है। यदि मूल्य को 'ई' के रूप में सूचित किया जाता है, तो इसका मतलब है कि बिक्री के बजाय एक एक्सचेंज, जो डेटाबेस में एक नकारात्मक संख्या के रूप में संग्रहीत है।
मूल्य को 0 के रूप में छोड़ने की संभावना भी है, या तो क्योंकि आइटम एक बोनस है या क्योंकि कीमत बाद के क्षण में सेट की जाएगी।
लेकिन, जब भी मूल्य निर्धारित नहीं किया जाता है, जो इसे 0 के प्रारंभिक मूल्य के साथ छोड़ देता है, तो if
ऊपर दिए गए लूप सही के रूप में मूल्यांकन करता है और मूल्य -1 पर सेट होता है। अर्थात्, यह 0 को 'ई' के बराबर मानता है।
इसे कैसे समझाया जा सकता है?
जब मूल्य 0 (आरंभीकरण के बाद) के रूप में प्रदान किया जाता है, तो व्यवहार अनियमित होता है: कभी-कभी यदि यह सच के रूप में मूल्यांकन करता है, तो कभी-कभी यह गलत के रूप में मूल्यांकन करता है। *
if((string)$item['price'] == 'e')
अजीब व्यवहार को ठीक करता है। अधिक जानकारी के लिए stackoverflow.com/a/48912540/1579327 देखें