Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में AND और && Operator में अंतर


PHP में AND और && दोनों logical AND operators हैं, लेकिन उनकी precedence (पूर्वता) अलग है।

Precedence Difference

OperatorPrecedenceविवरण
&&High (उच्च)Assignment (=) से पहले evaluate होता है
ANDLow (निम्न)Assignment (=) के बाद evaluate होता है

महत्वपूर्ण उदाहरण

<?php
$x = true;
$y = false;

// && का उपयोग - HIGH precedence
$result1 = $x && $y;  
// Equivalent to: $result1 = ($x && $y);
// $result1 = false

// AND का उपयोग - LOW precedence  
$result2 = $x AND $y;
// Equivalent to: ($result2 = $x) AND $y;
// $result2 = true (क्योंकि assignment पहले होता है!)

var_dump($result1); // bool(false)
var_dump($result2); // bool(true) - अप्रत्याशित!

व्यावहारिक प्रभाव

<?php
// खतरनाक: AND के साथ assignment
$success = authenticateUser() AND logActivity();
// यह ($success = authenticateUser()) AND logActivity() के बराबर है
// logActivity() केवल तभी चलता है जब $success true हो
// लेकिन $success हमेशा authenticateUser() का result होगा

// सुरक्षित: && के साथ
$success = authenticateUser() && logActivity();
// यह $success = (authenticateUser() && logActivity()) के बराबर है
// दोनों functions चलते हैं, $success final boolean result होता है

सर्वोत्तम अभ्यास

  • हमेशा && और || उपयोग करें - C-style operators, predictable precedence
  • AND/OR केवल legacy code compatibility के लिए मौजूद हैं
  • Assignment के साथ logical operations में &&/|| का उपयोग करें

पूर्ण Precedence Table (High to Low)

1. clone, new
2. [, ~, !, ++, --, (int), (float), (string), (array), (object), (bool), @
3. **
4. *, /, %
5. +, -, .
6. <<, >>
7. <, <=, >, >=, instanceof
8. ==, !=, ===, !==, <>, <=>
9. &
10. ^
11. |
12. &&
13. ||
14. ?:
15. =, +=, -=, *=, **=, /=, .=, %=, &=, |=, ^=, <<=, >>=
16. AND
17. XOR
18. OR
19. , (comma)

सारांश

नियम: सभी नए कोड में && और || उपयोग करें। AND/OR केवल बहुत पुराने legacy code को maintain करते समय मिल सकते हैं।

  1. - पायथन में == और is ऑपरेटर के बीच अंतर

    समस्या विवरण is और == ऑपरेटर ज्यादातर समान हैं लेकिन वे समान नहीं हैं। is ऑपरेटर परिभाषित करता है कि क्या दोनों वेरिएबल एक ही ऑब्जेक्ट को इंगित करते हैं जबकि == चिन्ह जांचता है कि दो वेरिएबल के मान समान हैं या नहीं। उदाहरण कोड # पायथन प्रोग्राम: == और is ऑपरेटर के बीच अंतर दिखाने के लिए # [] एक खाल

  1. - पायथन सेट पर ऑपरेटर और मेथड में क्या अंतर है?

    पायथन का सेट ऑब्जेक्ट बिल्ट-इन सेट क्लास को दर्शाता है। यूनियन, इंटरसेक्शन, डिफरेंस और सिमेट्रिक डिफरेंस जैसे विभिन्न सेट ऑपरेशन को संबंधित मेथड को कॉल करके या ऑपरेटर का उपयोग करके किया जा सकता है। मेथड द्वारा यूनियन >>> s1={1,2,3,4,5} >>> s2={4,5,6,7,8} >>> s1.union(s2)

  1. - Python में = और == ऑपरेटर्स में क्या अंतर है?

    Python में `=` सिंबल को असाइनमेंट ऑपरेटर के रूप में परिभाषित किया गया है। इसके बाईं ओर एक वेरिएबल और दाईं ओर एक एक्सप्रेशन की आवश्यकता होती है। दाईं ओर के एक्सप्रेशन का मान बाईं ओर के वेरिएबल को असाइन किया जाता है। एक्सप्रेशन और वेरिएबल का नाम परस्पर विनिमेय नहीं हैं। >>> a = 10 >>&g