2010-09-20 7 views
5

मैंने पहले सी ++ और जावा का उपयोग किया है और उनके पास यह === ऑपरेटर नहीं है।हमें इस विशेष === ऑपरेटर की आवश्यकता क्यों है?

वे इसके बिना कैसे प्रबंधित करते हैं लेकिन PHP जैसी भाषाओं में इसकी कुंजी।

+0

देखें: http://php.net/manual/en/language.operators.comparison.php – NullUserException

उत्तर

3

क्योंकि PHP सुरक्षित नहीं है। == 2 मानों की तुलना करता है, लेकिन === मूल्यों की तुलना करता है और जांच करता है कि उनके वर्ग के प्रकार समान हैं या नहीं।

मेरा मानना ​​है कि "2" == 2 सत्य लौटाता है, जबकि "2" === 2 झूठा रिटर्न देता है।

10

वास्तविक रूप से equals जावा में और == सी # अधिनियम में === PHP में करता है। अर्थात। "24".equals(24) झूठी वापसी करेगा।

क्या जावा और सी # के बराबर नहीं है PHP का == (यानी ऑपरेटर/विधि जैसे कि "24".fuzzyEquals(24) सत्य वापस आ जाएगा)। और ऐसा इसलिए है क्योंकि सी # और जावा दृढ़ता से टाइप किए गए हैं और ऐसा ऑपरेटर उनके दर्शन के खिलाफ होगा।

0

बस इतना ही पता है, यह जावास्क्रिप्ट में समान है और जेएसलिंट के अनुसार हमेशा एक प्रकार के चेक के रूप में उपयोग किया जाना चाहिए, जो तकनीकी रूप से == अनावश्यक बनाता है। लेकिन मुझे लगता है कि यह सिर्फ निजी प्राथमिकता

2

जब हम कहते हैं कि यह कई काफी अलग बातें

मतलब हो सकता है "एक बी के बराबर है"
  • ए और बी एक ही बात
  • ए और बी एक ही कर रहे हैं मूल्य, कि है, उनके मूल्यों एक तीसरी पार्टी के लिए अलग दिखाई न देने
  • ए और बी तार (या संख्या) है कि बराबर
  • एक कर रहे हैं और बी एक ही हैश मान के लिए परिवर्तित किया जा सकता

आदि

सबसे अधिक भाषाओं, समानता के विभिन्न प्रकार के लिए अलग-अलग ऑपरेटरों या कार्यों को देखने http://en.wikipedia.org/wiki/Equality_%28relational_operator%29#Object_identity_vs._Content_equality

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^