2013-02-15 8 views
7

?: सशर्त ऑपरेटर और || लॉजिकल OR का उपयोग करने के बीच क्या अंतर है।क्या अंतर है? : और ||

मैं लग रहा है कि मेरे कोड के साथ काम करता है:

$screenpixelratio = !empty($_COOKIE['screenpixelratio']) || $_COOKIE['screenpixelratio'] || $fallback_pixelratio; 

लेकिन नहीं:

$screenpixelratio = !empty($_COOKIE['screenpixelratio']) ? $_COOKIE['screenpixelratio'] : $fallback_pixelratio; 

कोई समझाने कृपया सकते हैं कारण है कि यह अन्य नहीं एक साथ काम करेंगे, लेकिन।

+1

एक (त्रिगुट ऑपरेटर कहा जाता है) "यदि परीक्षण" एक सरल के बराबर होता है; दूसरा एक तार्किक "या" - बहुत बड़ा अंतर है, पूरी तरह से अलग चीजें कर रहा है –

+0

दूसरा उदाहरण एक टर्नरी ऑपरेटर है। पहला व्यक्ति पहला सच्चाई मान निर्दिष्ट करता है जो इसे '$ स्क्रीन पिक्सेलरेशन' से मुकाबला करता है। – BenM

+0

टर्नरी ऑपरेटर –

उत्तर

8

|| द्विआधारी ऑपरेटरों ऑपरेटरों कि दो तर्क

रूप से निपटने के हैं इसका कहना है कि यह पहले जांच करेगा अगर आगे की जांच करने की तुलना में यह सच नहीं है

?: टर्नरी ऑपरेटर एक ऑपरेटर है जो तीन तर्क लेता है। तर्क और परिणाम विभिन्न प्रकार के हो सकते हैं।

Expression1 ? Expression2 : Expression3; 

enter image description here

18

पहले (conditional or) कह रहा है ...

this or this or this 

अन्य (ternary operation) कह रहा है

if this then this otherwise that 
+0

साफ़ और संक्षिप्त –