PHP में == और === के बीच अंतर
PHP में == और === के बीच अंतर: स्ट्रिंग और संख्या की तुलना में अजीब व्यवहार
सभी को नमस्कार! मैं PHP में नया हूँ और तुलना ऑपरेटरों के अप्रत्याशित व्यवहार का सामना किया। मैं == (गैर-सख्त समानता) और === (सख्त समानता) के बीच अंतर समझने की कोशिश कर रहा हूँ।
मेरे पास एक सरल कोड है:
$a = '123abc';
$b = 123;
var_dump($a == $b); // परिणाम: true
var_dump($a === $b); // परिणाम: falseमुझे उम्मीद थी कि दोनों तुलनाएँ false लौटाएँगी, क्योंकि प्रकार अलग हैं (स्ट्रिंग और संख्या)। लेकिन == true लौटाता है। ऐसा क्यों होता है? मैंने पढ़ा है कि == प्रकारों को परिवर्तित करता है, लेकिन मुझे समझ नहीं आता कि स्ट्रिंग '123abc' संख्या 123 के बराबर कैसे हो सकती है।
मैंने क्या प्रयास किया:
- विभिन्न स्ट्रिंग्स के साथ जाँच की (जैसे, 'abc123' — वहाँ == ने false लौटाया)
- PHP दस्तावेज़ीकरण पढ़ा तुलना ऑपरेटरों पर
- अन्य प्रकारों (बूलियन मान, null) के साथ प्रयोग किया
क्या आप एक स्पष्ट उदाहरण के साथ समझा सकते हैं कि कब == का उपयोग करना चाहिए और कब === का? और मेरे मामले में ऐसा क्यों हो रहा है?