2009-07-13 33 views
42

मैंने किसी को PHP ऑपरेटर === का उपयोग करके देखा है जिसे मैं समझ नहीं सकता। मैंने इसे एक समारोह के साथ आजमाया है, और यह पागल तरीके से मेल खाता है।"===" का क्या अर्थ है?

इस ऑपरेटर की परिभाषा क्या है? मैं इसे PHP ऑपरेटरों की घोषणा में भी नहीं ढूंढ सकता।

+24

FYI, आप वास्तव में '===': http://www.google.com.au पर Google नहीं कर सकते/खोज? q ==== – glasnt

+3

लेकिन Google के लिए थोड़ी अधिक जानकारी मदद मिलेगी: एचटी tp: //www.google.com.sg/search? hl = en & q =% 3 डी% 3 डी% 3 डी + php + ऑपरेटर और बीटीएनजी = Google + खोज और मेटा = और aq = f & oq = – beggs

+0

@ टमाटर सैंडविच: इसके बारे में क्या - http: // www .google.com/search? q = तीन + बराबर + संकेत + php =) – xk0der

उत्तर

60
$a === $b  (Identical)  

सही अगर $a$b के बराबर है, और वे एक ही प्रकार के कर रहे हैं। दो कि क्या चर बराबर है और एक ही प्रकार के कर रहे हैं देखने के लिए (PHP 4 में शुरू की)

PHP Docs

+3

एक नोट के रूप में, यह समानता ऑपरेटर जावास्क्रिप्ट में भी दिखाई देता है और मुझे लगता है कि पर्ल। यह काफी आम है। –

+12

यह भी ध्यान दें कि == को "चलो-देखें-मैं-कर-मेक-ऑफ-ऑफ-" ऑपरेटर के रूप में भी जाना जाता है, क्योंकि इसके परिणामस्वरूप मोती "100" == "1e2" और 0 == "एक"। –

+1

PHP के बारे में ज्यादा नहीं जानते, मैं 100 = 1e2 (10 * 10^2) समझता हूं लेकिन मुझे "0" == "एक" नहीं समझा जाता है? क्या कोई मुझे यह समझा सकता है? – Ksempac

3

ट्रिपल बराबर चिह्न === जाँच करता है।

12

आप here, संक्षिप्त सारांश पढ़ सकते हैं:

$ एक == $ ख समान सही अगर $ एक $ के बराबर ख के बाद प्रकार करतब दिखाने है।

$ a === $ बी समान सत्य अगर $ एक $ बी के बराबर है, और वे एक ही प्रकार के हैं।

+0

मुझे अब बेवकूफ़ लगता है, कि आपने इसे जल्दी से पाया, मैंने बिना किसी सफलता के इसे Google पर करने का प्रयास किया .. सभी को धन्यवाद। Php.net में –

+2

आपके पास इसके बारे में 99% प्रश्न के उत्तर हैं। –

50

http://www.php.net/ternary

$ एक == $ ख समान सही अगर $ एक $ ख के बराबर है, (यह सच है == -1) जो अभी भी सच है है के लिए छोड़कर।

$ a === $ बी समान सत्य अगर $ एक $ बी के बराबर है, और वे एक ही प्रकार के हैं।

> "5" == 5; 
True 
> "5" === 5; 
False 
+0

सच नहीं है। तीन बराबर संकेत झूठे लौटते हैं यदि $ ए और $ बी एक ही कक्षा की वस्तुएं हैं, और उनके सभी (संबंधित) गुणों के लिए समान मूल्य हैं।इसे स्वयं आज़माएं: कक्षा फर्स्ट क्लास { सार्वजनिक $ ए; सार्वजनिक $ बी; \t फ़ंक्शन फर्स्ट क्लास() { \t $$ यह -> ए = 1; \t \t $ यह -> बी = 1; \t} } $ पहला = नया फर्स्ट क्लास(); $ दूसरा = नया फर्स्ट क्लास(); अगर ($ पहला === $ दूसरा) { \t गूंज "ट्रिपल बराबर!"; \t } अन्य { \t गूंज "ट्रिपल बराबर नहीं!"; } –

+0

डिकम, बिल्कुल मेरा बिंदु - लेकिन मैं कुछ भी तुलना नहीं कर रहा हूं। मैं बस कहता हूं कि वस्तुओं के मामले में यह VALUE नहीं है जिसका तुलना === के माध्यम से की जाती है, लेकिन वास्तविक संदर्भ। अर्थात। वे पूरी तरह से वही ऑब्जेक्ट्स हो सकते हैं, अर्थात, सभी मानों के साथ, लेकिन फिर भी === झूठी दिखाता है, क्योंकि वे एक ही संदर्भ नहीं हैं। –

+0

आपने कहा: $ a === $ b समान सत्य अगर $ एक $ बी के बराबर है, और वे एक ही प्रकार के हैं। मैं बस इतना कहता हूं कि यह बिल्कुल सही नहीं है। पूर्ण विराम। –

1

देखें Double and Triple equals operator in PHP है कि मैं पर "पीएचपी तीन ऑपरेटर के बराबर है" googling के लिए मिला है।

एक समय यह कहा गया है कि:

एक डबल = चिह्न एक तुलना और परीक्षण चर/अभिव्यक्ति/बाईं ओर निरंतर/चर/अभिव्यक्ति के रूप में एक ही मूल्य सही करने के लिए निरंतर एक जैसा है या है ।

एक ट्रिपल = साइन यह देखने के लिए एक तुलना है कि दो चर/एक्सपेशंस/स्थिरांक बराबर हैं और समान प्रकार हैं - यानी दोनों स्ट्रिंग हैं या दोनों पूर्णांक हैं।

यह इसे समझाने के लिए एक उदाहरण भी देता है।

1

पीएचपी के लिए, वहाँ कई अलग अलग अर्थ एक शून्य ले

  1. यह एक बूलियन झूठी एक शून्य मान
  2. यह हो सकता है
  3. हो सकता है कर सकते हैं यह वास्तव में एक शून्य
हो सकता है

तो === यह सुनिश्चित करने के लिए जोड़ा गया है कि प्रकार और मान समान हैं।

9

PHP में आप == ऑपरेटर या === ऑपरेटर का उपयोग करके दो मानों की तुलना कर सकते हैं। अंतर यह है:

PHP एक गतिशील, व्याख्या की गई भाषा है जो डेटा प्रकारों पर सख्त नहीं है। इसका मतलब यह है कि जब भी आवश्यक हो, भाषा स्वयं डेटा प्रकारों को बदलने की कोशिश करेगी।

echo 4 + "2"; // output is 6 

उत्पादन, पूर्णांक मान 6 क्योंकि + PHP में संख्यात्मक अलावा ऑपरेटर है, इसलिए यदि आप इसे करने के लिए अन्य डेटा प्रकार के साथ ऑपरेंड प्रदान करते हैं पीएचपी पहली बार अपने उचित प्रकार करने के लिए उन्हें परिवर्तित कर देंगे ("2" होगा 2 में परिवर्तित किया जाना चाहिए) और फिर ऑपरेशन निष्पादित करें।

यदि आप दो ऑपरेंड के साथ तुलना ऑपरेटर के रूप में == का उपयोग करते हैं जो विभिन्न डेटा प्रकारों में हो सकता है, तो PHP दूसरे ऑपरेंड प्रकार को पहले में परिवर्तित कर देगा। तो:

4 == "4" // सच

PHP 4 में धर्मान्तरित "4", और फिर मान तुलना करती है। इस मामले में, परिणाम सच होगा।

यदि आप तुलना ऑपरेटर के रूप में === का उपयोग करते हैं, तो PHP किसी भी डेटा प्रकार को बदलने की कोशिश नहीं करेगा। तो यदि ऑपरेंड के प्रकार अलग हैं, तो वे समान नहीं हैं।

4 === "4" // झूठी

0

"===" साथ ही साथ चर का डेटा प्रकार वैरिएबल के मान से मेल खाते।

4

आप इस ऑपरेटर को कई गतिशील रूप से टाइप की गई भाषाओं में देखेंगे, न केवल PHP।

== जो कुछ भी इसके साथ तुलना कर रहा है उसे बदलने के लिए प्रयास करेगा।

=== सख्ती से प्रकार और मूल्य की तुलना करेगा।

किसी भी गतिशील रूप से टाइप की गई भाषा में आपको == से सावधान रहना होगा, आपको कुछ रोचक बग मिल सकती हैं।

टर्नरी === कम सुविधाजनक है, लेकिन यह सुरक्षित है।तुलना के लिए आप हमेशा क्या यह होना चाहिए के लिए कुछ अतिरिक्त विचार करना चाहिए === या ==

6

$x == $y सही है अगर की $ x और $ y मूल्य एक ही हैं:

$x = 1; //int type 
$y = "1"; //string type 
if ($x == $y) { 
    // This will execute 
} 

$x === $y सही यदि का मान $ x और $ y समान हैं और $ x और $ y का प्रकार समान है:

$x = 1; //int type 
$y = "1"; //string type 
if ($x === $y) { 
    // This will not execute 
} 
संबंधित मुद्दे