मैंने इस सवाल के शीर्षक में क्या पागल बग कम किया है। मुझे यकीन है कि Php सोचता है कि 0 == '%' (या कोई अन्य विशेष चरित्र, मुझे लगता है) क्यों एक बिल्कुल उचित तर्क है। मैंने सोचा कि स्टैक ओवरफ्लो पर उस स्पष्टीकरण को प्राप्त करना अच्छा होगा!अगर (0 == '%') गूंजें "डब्ल्यूटीएफ, पीएचपी, आप चीजों की तुलना क्यों नहीं कर सकते?"
उत्तर
'===' का उपयोग करके (सटीक, शाब्दिक तुलना के लिए - मानों को एक ही प्रकार और बराबर होना चाहिए) '==' इस समस्या को हल करता है। '==' के साथ यह '%' को किसी संख्या में डालने का प्रयास कर रहा है और 0 सबसे अच्छा यह कर सकता है।
यदि आप === का उपयोग करते हैं, तो ध्यान रखें कि $ x = '0'; var_dump ($ x === 0) झूठा देता है ($ x स्ट्रिंग है, 0 एक पूर्णांक है) :) –
के बाद से '%' सच नहीं है, यह गलत (0), तो निश्चित रूप से 0 == '%'
;-) अजीब हालांकि
यह स्ट्रिंग को बूल में परिवर्तित नहीं करता है, दूसरा ऑपरेंड पूर्णांक है और बूल नहीं है। –
यह करने के लिए भी ऐसा ही होगा होना चाहिए किसी भी स्ट्रिंग, एक गैर-संख्या स्ट्रिंग को पूर्णांक में परिवर्तित करने से हमेशा 0.
यही कारण है कि (कई अन्य पागल चीजों के साथ) PHP को वास्तविक "प्रोग्रामिंग भाषा" भी नहीं माना जाना चाहिए। – slashCoder
यदि एक सख्त तुलना ऑपरेटर सीधे उपयुक्त नहीं है, तो यदि आप दोनों मानों को तारों के रूप में तुलना करना चाहते हैं, तो आप strcmp() का उपयोग कर सकते हैं। एक उदाहरण हो सकता है जहां दोनों मान चर हैं, और प्रकार या तो स्ट्रिंग या int हो सकते हैं। स्ट्रिंग के लिए कास्टिंग टाइप करने के बजाय और फिर सख्त समानता जांच का उपयोग करने के बजाय, strcmp() कम वर्बोज़ हो सकता है।
PHP का प्रकार जबरन बहुत सुविधाजनक है। लेकिन अगर आप इसके कई नियमों को समझ नहीं पाते हैं (कुछ काट सकते हैं), तो आपको इसका उपयोग करने से बचने की कोशिश करनी चाहिए। http://www.php.net/manual/en/types.comparisons.php
- 1. आप UnRegisterStartupScript क्यों नहीं कर सकते?
- 2. क्यों नहीं है (LINQ) चीजों की तुलना ठीक से करता है? (IEquatable का उपयोग करके)
- 3. क्यों डेटाटाइम तुलना नहीं कर सकता है?
- 4. तुलना नहीं कर सकते जेनेरिक मान
- 5. पाइथन में आप ओएस के argv [0] (sys.argv [0] नहीं) कैसे प्राप्त कर सकते हैं?
- 6. फ़्लोटिंग-पॉइंट की तुलना 0
- 7. आप फ़ंक्शन अभिव्यक्ति को क्यों स्ट्रिंग नहीं कर सकते?
- 8. पीएचपी अगर (हालत) निष्पादन
- 9. आंतरिक वर्ग स्थिर सदस्यों की घोषणा क्यों नहीं कर सकते?
- 10. पीएचपी: Datetime :: Diff तुलना
- 11. क्या आप कोड में NetTcp बाइंडिंग कर सकते हैं? अगर आप?
- 12. PHP पूर्णांक तुलना 0 पूर्णांक की तुलना सच है?
- 13. क्या आप फ्लोटिंग पॉइंट मानों की तुलना शून्य से कर सकते हैं?
- 14. यह निर्देशिकाइन्फो तुलना क्यों काम नहीं कर रही है?
- 15. आप रिलीज मोड में वेबसाइट क्यों नहीं बना सकते?
- 16. jQuery 'अगर' कथन स्ट्रिंग तुलना
- 17. हम दो enum मानों की तुलना '<' से कैसे नहीं कर सकते?
- 18. आप jQuery ऑब्जेक्ट्स की तुलना कैसे करेंगे?
- 19. क्या आप पीएचपी के लिए प्रदर्शन विश्लेषण उपकरण की सिफारिश कर सकते हैं?
- 20. सी ++ "पैरामीटर की घोषणा नहीं कर सकते हैं सार प्रकार
- 21. सी में आप क्या नहीं कर सकते हैं जिसे आप उद्देश्य-सी में कर सकते हैं?
- 22. आप खिड़की की एक ओवरराइड संपत्ति क्यों हटा सकते हैं?
- 23. वापसी 0 अगर MySQL
- 24. क्या आप समानता के लिए पते से वस्तुओं की तुलना कर सकते हैं?
- 25. अगर (listStr.size == 0) {बनाम कि अगर (listStr.isEmpty()) बनाम {
- 26. क्या आप रेल 3 खोज में किसी दिनांक की तुलना से अधिक कर सकते हैं?
- 27. प्रोटोटाइप विरासत के साथ आप किस पैटर्न का उपयोग कर सकते हैं जिसे आप कक्षा के साथ नहीं कर सकते?
- 28. रेल क्यों mod_ruby के साथ काम नहीं कर सकते हैं?
- 29. set_time_limit (0) और "अधिकतम निष्पादन समय" पीएचपी
- 30. सी # की जांच अगर आप तर्क पारित कर दिया है या नहीं
http://stackoverflow.com/questions/875854/how-best-to-compare-to-0-in-php –
देखें यही कारण है कि मैं PHP और अधिक या कम एक ही तरह से मैं सी बारे में लिखने ++। ;) – Teekin