मुझे आश्चर्य है कि PHP सच/झूठी आंतरिक रूप से तुलना कैसे करता है। मैं समझता हूं कि सत्य को 1 के रूप में परिभाषित किया गया है और झूठी को 0. के रूप में परिभाषित किया गया है जब मैं if("a"){ echo "true";}
करता हूं तो यह echos "सत्य" होता है। PHP "ए" को 1 के रूप में कैसे पहचानता है?PHP में सही/गलत काम कैसे करता है?
उत्तर
यह booleans और type comparison tables के लिए पीएचपी दस्तावेज में कवर किया जाता है।
जब बुलियन में परिवर्तित करने, निम्न मान FALSE माना जाता है:
- बूलियन
FALSE
ही - पूर्णांक
0
(शून्य) - नाव
0.0
(शून्य) - रिक्त स्ट्रिंग , और स्ट्रिंग
'0'
- एक सरणी शून्य तत्वों
- शून्य सदस्य चर के साथ एक वस्तु (PHP 4 केवल)
- विशेष प्रकार
NULL
- SimpleXML वस्तुओं रिक्त टैग्स से बनाए गए
हर दूसरी मान TRUE माना जाता है (सेट नहीं चर सहित)।
दरअसल, ऐसे कई मूल्य हैं जो खाली सरणी और शून्य सहित झूठी में परिवर्तित होते हैं। या आप सिर्फ तारों का जिक्र कर रहे थे? – sidereal
@sidereal: मैंने अब पूरा निकाला पोस्ट किया है। रीफ्रेश दबाएं। ;-) –
सामान्य सम्मेलन नहीं है '0 से हर दूसरे मूल्य को गलत माना जाता है ?? लिनक्स खोल में के रूप में। मैं प्रोग्रामर समुदाय – Blauhirn
शून्य झूठा है, nonzero सच है।
PHP में आप ===
ऑपरेटर का उपयोग करके अधिक स्पष्ट रूप से परीक्षण कर सकते हैं।
if (0==false)
echo "works"; // will echo works
if (0===false)
echo "works"; // will not echo anything
क्यों '0 === झूठा' काम नहीं करेगा? '0 === झूठी' और' 0 === गलत 'के बीच भी कोई अंतर है? – JavaSa
'0 === झूठी' और' 0 === गलत 'के बीच कोई अंतर नहीं है। दोनों झूठे एक ही मूल्य का मूल्यांकन करते हैं; फ़ंक्शन नाम और भाषा कीवर्ड के लिए, PHP, अप्रिय रूप से, केस-असंवेदनशील है। इन दोनों "काम", लेकिन वे झूठे मूल्यांकन करते हैं, क्योंकि '===' वास्तव में एक प्रकार-निर्भर मूल्य जांच करता है। '==' प्रकारों के बीच चेक की अनुमति देता है; इस थ्रेड पर स्वीकृत उत्तर देखें कि कैसे PHP निर्धारित करता है कि क्या गलत है और क्या नहीं। – kungphu
PHP कमजोर टाइपिंग (जिसे इसे 'टाइप जॉगलिंग' कहते हैं) का उपयोग करता है, जो एक बुरा विचार है (हालांकि यह किसी अन्य समय के लिए वार्तालाप है)। जब आप एक संदर्भ है कि एक बूलियन की आवश्यकता है में एक चर का उपयोग करने का प्रयास करें, यह परिवर्तित कर देंगे जो भी आपके चर रहा है एक बूलियन में, कुछ ज्यादातर मनमाने ढंग से यहाँ उपलब्ध नियमों के अनुसार: http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
वह "बुरा विचार" पूरी तरह से व्यक्तिपरक है: एक बार जब आप जानते हैं कि यह कैसे काम करता है, तो यह मेरी राय में एक समस्या नहीं है ;-) ;; और रूपांतरण नियम ज्यादातर मेरे लिए काफी अनौपचारिक प्रतीत नहीं होते हैं ;-) –
मुझे एक स्टैक ओवरफ्लो प्रश्न पोस्ट न करें कि कोई विचार कमजोर टाइपिंग कितना बुरा है;)। इस बात पर विचार करें कि PHP मूलभूत सिद्धांत बनाने में विफल रहता है, क्योंकि अंतर्निहित प्रकार रूपांतरण php समानता को गैर-संक्रमणीय बनाते हैं: गूंज ("सत्य" == सत्य)। "\ N"; // सत्य गूंज (सत्य == 1)। "\ n"; // सत्य गूंज ("सत्य" == 1)। "\ n"; // झूठी: पी – sidereal
हाँ ... यह नए खिलाड़ियों के लिए एक (संभावित रूप से) बहुत खतरनाक चाल है, लेकिन यह एक बुरा विचार नहीं है। मैं यहां कोड की मजबूती की रक्षा नहीं कर रहा हूं, लेकिन कभी-कभी यह एक अच्छा शॉर्टकट होता है। इसके अलावा, यदि आप बड़े पैमाने पर काम के तरीके में बहुत कुछ कर रहे हैं तो आप संभवतः इसके बजाय अधिकतर समानता विधियों का उपयोग करेंगे। – spronkey
ऑपरेटर के रूप में एकल समारोह के थिंक: is_false(type value)
जो विशिष्ट प्रकार और मूल्य के सटीक कार्यान्वयन के आधार पर सत्य या गलत लौटाता है। इस बात पर विचार करें कि सिंटेक्टिक चीनी के माध्यम से, इस तरह के कार्य को लागू करने के लिए कथन।
अन्य संभावना यह है कि प्रकार ने ऑपरेटर कास्ट किया है, जो इस मामले में बूलियन को स्ट्रिंग में एक और प्रकार में बदल देता है।
PHP ऐसे विवरणों का खुलासा नहीं करता है, लेकिन सी ++ ऑपरेटर ओवरलोडिंग की अनुमति देता है जो ऑपरेटर कार्यान्वयन के अच्छे विवरण का खुलासा करता है।
सख्त जांच के लिए सबसे अच्छा ऑपरेटर
if($foo === true){}
इस तरह, आप वास्तव में अगर यह सच है जाँच कर रहे हैं, और नहीं 1 या बस सिर्फ सेट है।
- 1. PHP में pcntl_fork कैसे काम करता है?
- 2. PHP में "imagettfbbox()" कैसे काम करता है?
- 3. PHP max_execution_time कैसे काम करता है?
- 4. PHP IteratorIterator क्लास कैसे काम करता है?
- 5. php autoloader कैसे काम करता है
- 6. PHP का 'मेल' कैसे काम करता है?
- 7. PHP - सीएसआरएफ - यह सभी टैब में कैसे काम करता है?
- 8. apache PHP मेमोरी उपयोग वास्तव में कैसे काम करता है?
- 9. "&" ऑपरेटर एक PHP फ़ंक्शन में कैसे काम करता है?
- 10. ArrayAccess कैसे काम करता है?
- 11. हेडर() कैसे काम करता है?
- 12. कैसे काम करता है HTTP_USER_AGENT
- 13. जेसन हेडर काम नहीं करता है - php
- 14. कैसे काम करता है?
- 15. php semaphore काम नहीं करता
- 16. PHP पीडीओ आंतरिक रूप से कैसे काम करता है?
- 17. PHP पीडीओ :: बिंदपाराम() डेटा प्रकार .. यह कैसे काम करता है?
- 18. PHP में स्ट्रिप_टैग क्यों काम नहीं करता है?
- 19. क्या एक PHP सत्र उपनिर्देशिकाओं में काम करता है?
- 20. रूबी में string.unpack कैसे काम करता है?
- 21. लिनक्स में पाइप कैसे काम करता है?
- 22. कैसे रूबी में काम करता है सुनिश्चित
- 23. ~ [] निर्माण जावास्क्रिप्ट में कैसे काम करता है?
- 24. जावास्क्रिप्ट में 'कॉल' कैसे काम करता है?
- 25. स्ट्रिंग में "\ x" कैसे काम करता है?
- 26. विभाजन मिक्स में कैसे काम करता है?
- 27. बहुआयामी वास्तव में कैसे काम करता है?
- 28. पाइथन में पॉलिमॉर्फिज्म कैसे काम करता है?
- 29. यादृच्छिक() वास्तव में कैसे काम करता है?
- 30. IOrderedEnumerable.ThenBy() .Net में कैसे काम करता है?
यह कहना बेहद सरल है कि "सत्य को 1 के रूप में परिभाषित किया गया है और झूठी को 0 के रूप में परिभाषित किया गया है।" –
बीटीडब्ल्यू।अनुमान लगाएं कि यह क्या लौटाता है: "झूठा" == सच –