Avatar ·

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) के साथ प्रयोग किया

क्या आप एक स्पष्ट उदाहरण के साथ समझा सकते हैं कि कब == का उपयोग करना चाहिए और कब === का? और मेरे मामले में ऐसा क्यों हो रहा है?