2010-03-19 13 views
9

मुझे एक बार ऑपरेटर "===" का सामना करना पड़ा। लेकिन मुझे याद नहीं है कि यह क्या था .. या हम इसका उपयोग कहां करते हैं .. या क्या ऐसा कोई ऑपरेटर है? इसका उपयोग कहाँ किया जाता है ??"===" ऑपरेटर के लिए क्या है?

उत्तर

19

पीएचपी, जावास्क्रिप्ट, ECMAScript, ActionScript 3.0 में, और अन्य समान, गतिशील भाषाओं के एक नंबर, देखते हैं दो प्रकार: == (गैर सख्त समानता) और === (सख्त समानता)। उदाहरण दिखाने के लिए:

5 == "5" // yep, these are equal, because "5" becomes 5 when converted to int 
5 === "5" // nope, these have a different type 

असल में, जब भी आप == का उपयोग करते हैं, तो आप स्वचालित प्रकार के रूपांतरणों को जोखिम देते हैं। === का उपयोग करना सुनिश्चित करता है कि मान तार्किक रूप से बराबर हैं और वस्तुओं के प्रकार भी बराबर हैं।

+0

क्या जावास्क्रिप्ट और ईसीएमएस्क्रिप्ट के बीच कोई अंतर है? –

+2

@ टर्टल, हां। ECMAScript भाषा मानकीकरण प्रयास है जिस पर जावास्क्रिप्ट अब आधारित है (जावास्क्रिप्ट पहले आया था), और कई भाषाएं हैं - न केवल जावास्क्रिप्ट - जो ईसीएमएस्क्रिप्ट से अपना मूल वाक्यविन्यास प्राप्त करती है लेकिन फिर अन्य तत्व या संरचनाएं (उदा। एक्शनस्क्रिप्ट 3.0) जोड़ती हैं।जावास्क्रिप्ट और ईसीएमएस्क्रिप्ट के बीच महत्वपूर्ण अंतर यह है कि जावास्क्रिप्ट ईसीएमएस्क्रिप्ट है क्योंकि यह अभ्यास में होता है ... यानी, ब्राउज़र वास्तव में ईसीएमएस्क्रिप्ट को कैसे कार्यान्वित करते हैं (जैसे मानक, एक्सटेंशन इत्यादि से विचलन) –

+1

आपने दूसरे उदाहरण पर एक टाइपो बनाया , '5 ===" 5 के बजाय '5 ===" 5 "' होना चाहिए। –

8

इसकी और जावास्क्रिप्ट, पीएचपी में इस्तेमाल अधिक हो सकता है (जो मैं अभी तक का सामना करना पड़ा नहीं हो सकता!), यह करता है, तो दोनों की तुलना में चीजों को एक ही वस्तु के हैं की तुलना के रूप में अच्छी लिखते ही एक ही मूल्य है करने के लिए प्रयोग किया जाता है।

+0

PHP में भी उपयोग किया जाता है .. – vpram86

+0

न केवल जेएस। इसके अलावा कई अन्य भाषाओं में भी। –

+0

@ एविएटर @ फ़ेलिक्स धन्यवाद, संपादित करने के लिए धन्यवाद :) –

1

=== समानता, कम से कम पीएचपी

Here is a link समझाने में मदद करता है कि thsi

+0

और प्रोलॉग में भी, जैसा कि मुझे याद है। मैं सुनिश्चित नहीं हूं। – MatrixFrog

2

यह आमतौर पर परीक्षण करता है, तो दो वस्तुओं एक ही हैं में है। अर्थात। अगर उनके पास समान मूल्य नहीं है लेकिन यदि वे वास्तव में एक ही वस्तु हैं।

16

जावास्क्रिप्ट में, == टाइप जबरन करता है, जबकि ===, "सख्त समानता" ऑपरेटर नहीं करता है। उदाहरण के लिए:

"1" == 1; // true 
"1" === 1; // false 

भी एक इसी सख्त असमानता ऑपरेटर, !== नहीं है।

3

"===" ऑपरेटर मानों को जांचने के लिए प्रयोग किया जाता है और साथ ही समान प्रकार के बराबर होते हैं। समानता की जांच के

उदाहरण

$a === $b if $a is equal to $b, and they are of the same type. 
0

रूबी में, ट्रिपल बराबर ऑपरेटर (अंतर्निहित) case/when द्वारा उपयोग किया जाता है यह निर्धारित करने के लिए होता है कि कोई वस्तु किसी विशेष मामले में "कब गिरती है" निर्धारित करती है। उदाहरण के लिए, रूबी में "रेंज" ऑब्जेक्ट्स की अवधारणा है; 1..10 का अर्थ है "1 और 10 के बीच के सभी मूल्य, समावेशी।" तो `3 == 1.10 'गलत है, क्योंकि 3 एक संख्या है और 1.10 एक रेंज है। लेकिन,

3 === 1..10 सत्य लौटाता है, क्योंकि 3 में सीमा है।

मामला/जब यह तय करता है कि तर्क किस मामले से संबंधित है, तो इसका उपयोग कब होता है। तो,

case a 
    when (1..10) 
    puts "This is a valid rating" 
    else 
    puts "invalid" 
    end 

अपेक्षा के अनुसार काम करता है।

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