payment by upi: sinhamit@icici or payment by bank account name: amit kumar sinha, account number: 2646728782 IFSC code: KKBK0005660 SWIFT: KKBKINBB

Please support if you like my work by payment through upi: sinhamit@icici or payment by bank

account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB


More Operators   in Category: पीएचपी   by amit

🕙 Posted on 2023-06-02 at 21:12:26


ऑपरेटरों के बारे में अधिक

    PHP में और भी कई प्रकार के ऑपरेटर हैं। आपने पिछले पृष्ठ में सशर्त (conditional) नियंत्रण (control) प्रवाह (flow) संरचनाओं (structures) के बारे में देखा है । if(){} elseif(){} else{} सशर्त ब्लॉकों में, केवल एक ब्लॉक जो कि {} घुंघराले ब्रेसिज़ के अंदर कथनों की श्रृंखला है, निष्पादित की जाएगी, और अन्य ब्लॉकों को छोड़ दिया जाएगा। इसी तरह के प्रभाव कुछ ऑपरेटरों द्वारा भी हासिल किए जाते हैं, उदाहरण के लिए −

कंडीशन :स्टेटमेंट1 ?स्टेटमेंट2 (टर्नरी ऑपरेटर)

<?php
  $my_var = false; // चर $my_var का उपयोग कंडीशन (शर्त) के रूप में किया है
  $result_var = $my_var ? "Correct" : "Incorrect";     // टर्नरी ऑपरेटर का परिणाम हमेशा एक चर (variable) को सौंपा (निर्दिष्ट किया) जाता है
  echo $result_var; // आउटपुट Incorrect है
  echo '<br />';
?>

    उपरोक्त उदाहरण में, टर्नरी ऑपरेटर को तीन ऑपरेंड की आवश्यकता होती है − पहला सशर्त अभिव्यक्ति (conditional expression) है , दूसरा एक कथन1 (statement1) है , जिसे केवल सशर्त अभिव्यक्ति true होने पर ही निष्पादित किया जाएगा, और तीसरा एक कथन2 (statement2) है , जिसे सशर्त अभिव्यक्ति false होने पर ही निष्पादित किया जाएगा। उपरोक्त उदाहरण निम्न if(){} else{}ब्लॉक के समान है।

<?php if( false ) echo "Correct"; else echo "Incorrect"; ?>

    आप देख सकते हैं कि टर्नरी ऑपरेटर एक्सप्रेशन से आउटपुट को एक वेरिएबल नाम को निर्दिष्ट किया गया है, लेकिन if(){} else{} ब्लॉक सीधे कोड को निष्पादित करता है। कोड लिखने के दोनों तरीके महत्वपूर्ण हैं, और जहाँ भी आवश्यक होगा, स्क्रिप्ट में दोनों का उपयोग किया जाएगा। टर्नरी ऑपरेटरों को स्टैकिंग करते (ढेर लगाते) समय आपको कोष्ठक () का उपयोग करना चाहिए। निम्नलिखित उदाहरणों पर विचार करें −

<?php echo true ? 'true' : false ? 't' : 'f'; // आउटपुट निम्न है, ('t' PHP 7.4 से पहले) ?>


Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in C:\xampp\htdocs\php_project\phptest.php on line 1

<?php echo true ? 'true' : (false ? 't' : 'f'); // कोष्ठक में उपयोग किए जाने पर true आउटपुट देता है ?>

<?php echo (true ? 'true' : false) ? 't' : 'f'; // आउटपुट 't' है ?>

<?php echo false ? 'true' : (false ? 't' : 'f'); // आउटपुट 'f' है ?>

    "स्टैकिंग" टर्नरी एक्सप्रेशन से बचने की सलाह दी जाती है। अन्य भाषाओं की तुलना में एक अभिव्यक्ति के भीतर एक से अधिक अपरिष्कृत टर्नरी ऑपरेटर का उपयोग करते समय PHP का व्यवहार स्पष्ट नहीं है। वास्तव में PHP 8.0.0 से पहले, अधिकांश अन्य प्रोग्रामिंग भाषाओं की तरह राइट-एसोसिएटिव के बजाय टर्नरी एक्सप्रेशंस का मूल्यांकन लेफ्ट-एसोसिएटिव के रूप में किया गया था। PHP 7.4.0 से लेफ्ट-एसोसिएटिविटी पर भरोसा करना बहिष्कृत कर दिया गया है। PHP 8.0.0 के अनुसार, टर्नरी ऑपरेटर गैर-सहयोगी है।

अभिव्यक्ति1 ??अभिव्यक्ति2 (null कोलेसिंग)।

    जब तक आवश्यक न हो, नल कोलेसिंग ?? ऑपरेटर का उपयोग न करें । यह ऑपरेटर दो ऑपरेंड पर लागू होता है − PHP और अन्य प्रोग्रामिंग भाषाओं में अधिकांश ऑपरेटर बाइनरी होते हैं। आपको बाइनरी ऑपरेटरों को बाइनरी नंबरों के समान नहीं समझना चाहिए। = (असाइनमेंट ऑपरेटर) को दो ऑपरेंड की आवश्यकता होती है − दाएं ऑपरेंड या एक्सप्रेशन का मूल्यांकन किया जाता है और बाईं ओर वेरिएबल/स्थिर नाम को असाइन किया जाता है। जैसा कि ऊपर बताया गया है, टर्नरी ऑपरेटर केवल एक ?: है।

    यूनरी ऑपरेटर का मतलब है कि केवल एक ऑपरेंड है, जिस पर यह लागू होता है − उदाहरण के लिए +(उपसर्ग prefix) और -(उपसर्ग prefix) पहचान (identity) और निषेध (negation) हैं (जोड़ और घटाव से अलग, जो बाइनरी ऑपरेटर हैं); ++ (वृद्धि) और -- (कमी) ऑपरेटर; ! (नहीं) और ~ (आपके कीबोर्ड में 1 कुंजी के बाईं ओर, Shift कुंजी का उपयोग करें)। विभिन्न प्रकार के ऑपरेटरों को पिछले पृष्ठ में समझाया गया है ।

<?php $abc = null; $xyz = $abc ?? "hello"; echo $xyz; // आउटपुट hello है ?>

<?php $abc = false; $xyz = $abc ?? "hello"; var_dump( $xyz ); // आउटपुट bool(false) है ?>

<?php $xyz = $mno ?? "hello"; echo $xyz; // आउटपुट hello है ?>

    ऊपर के तीन उदाहरणों में, आप देख सकते हैं कि ??(नल कोलेसिंग) ऑपरेटर दूसरे ऑपरेंड को आउटपुट करता है, जब पहला ऑपरेंड null है या परिभाषित नहीं (undefined) होता है, अन्यथा यह पहले ऑपरेंड को आउटपुट करता है। इस तरह आप परिणाम आउटपुट के लिए एक डिफ़ॉल्ट मान निर्दिष्ट कर सकते हैं जब कोई चर/स्थिर नाम सेट नहीं किया गया है, या इसका मान null है। जैसा कि पिछले पृष्ठ में समझाया गया है, आप isset() फ़ंक्शन का भी उपयोग कर सकते हैं।

बिटवाइज़ ऑपरेटर्स ~ & | ^ << >>

    ये बिटवाइज़ ऑपरेटर्स (~ को छोड़कर) बाइनरी ऑपरेटर्स हैं, यानी इनमें से प्रत्येक को दो ऑपरेंडस की आवश्यकता होती है। ~ (बिटवाइज़ नहीं) ऑपरेटर यूनरी ऑपरेटर है। PHP interpreter ऑपरेंडस को पहले बाइनरी प्रतिनिधित्व में परिवर्तित करते हैं, और फिर उन पर बिटवाइज़ ऑपरेशन किए जाते हैं । आप सीधे echo या var_dump() फ़ंक्शन के साथ आउटपुट प्राप्त कर सकते हैं, या उन्हें एक चर/स्थिर नाम पर असाइन कर सकते हैं।

ऑप­रेटरऑप­रेशनबाइ­नरी प्रति­निधि­त्वबाइ­नरी परि­णामआउ­टपुट
& (bitwise and)6 & 3110 & 0110102
| (bitwise or)6 | 3110 | 0111117
^ (bitwise xor)6 ^ 3110 ^ 0111015
^5 ^ 2101 ^ 101117
^5 ^ 4101 ^ 1000011
~ (bitwise not)~ 6~110 (flipped to →)001-7
~~6 & 3001 & 0110011
<< (bitwise shift left)6 << 3110 को 3 शून्य द्वारा बाईं ओर स्थानांतरित कर दिया गया है11000048
>> (bitwise shift right)6 >> 3110 को 3 शून्य द्वारा दाईं ओर स्थानांतरित कर दिया गया है0007
>>6 >> 1110 को 1 शून्य द्वारा दाईं ओर स्थानांतरित कर दिया गया है0113

    &(बिटवाइज and) दो ऑपरेंड में संबंधित स्थिति (positions) की तुलना करता है, और जब दोनों 1 होते हैं, तो आउटपुट 1 होता है, अन्यथा 0 (शून्य) आउटपुट होता है।

<?php var_dump( 6 & 3 ); // आउटपुट int(2) ?>

    |(बिटवाइज़ or) दो ऑपरेंड में संबंधित स्थिति की तुलना करता है, और जब दोनों 0 होते हैं, तो आउटपुट 0 होता है, अन्यथा 1 (एक) आउटपुट होता है।

<?php var_dump( 6 | 3 ); // आउटपुट int(7) ?>

    ^(बिटवाइज़ xor) दो ऑपरेंड में संबंधित स्थिति की तुलना करता है, और जब दोनों एक दूसरे के विपरीत होते हैं, तो आउटपुट 1 होता है , अन्यथा 0 (शून्य) आउटपुट होता है। decbin() (दशमलव से बाइनरी) पूर्व-निर्धारित गणित फ़ंक्शन और &nbsp; (एचटीएमएल व्हाइटस्पेस) या <br /> (एचटीएमएल लाइन-ब्रेक) का उपयोग आउटपुट का वर्णन करने के लिए किया जा सकता है जैसा कि नीचे दिखाया गया है −

<?php var_dump( 6 ^ 3 ); // आउटपुट int(5) है ?>

<?php echo decbin(5), ' &nbsp; ', decbin(2), ' &nbsp; ', decbin(5^2), ' &nbsp; ', 5^2; // आउटपुट 101   10   111   7 है ?>

<?php echo decbin(5), ' &nbsp; ', decbin(4), ' &nbsp; ', decbin(5^4), ' &nbsp; ', 5^4; // आउटपुट 101   100   1   1 है ?>

    ~(बिटवाइज नहीं) एकल ऑपरेंड में संबंधित पदों (positions) की तुलना करता है, और इसे विपरीत दिशा में फ़्लिप करता है। विपरीत का बाइनरी परिणाम आउटपुट बन जाएगा।

<?php var_dump( ~ 6 ); // आउटपुट int(-7) है ?>

<?php var_dump( ~ 6 & 3 ); // आउटपुट int(1) है ?>

    <<(बिटवाइज़ शिफ्ट लेफ्ट) और >>(बिटवाइज़ शिफ्ट राइट) बाइनरी डिजिट को 0(ज़ीरो) से क्रमशः बाएँ और दाएँ शिफ्ट करते हैं, बाइनरी परिणाम दशमलव (पूर्णांक) में परिवर्तित हो जाएगा। बाइनरी अंक 0 और 1 हैं, जबकि दशमलव अंक 0 से 9 तक हैं।

<?php var_dump( 6 << 3 ); // आउटपुट int(48) है ?>

<?php var_dump( 6 >> 3 ); // आउटपुट int(0) है ?>

<?php var_dump( 6 >> 1 ); // आउटपुट int(3) ?>

लॉजिकल ऑपरेटर्स! && || and or xor

    तार्किक ऑपरेटरों को किसी भी शाब्दिक ऑपरेंड के बूलियन वैल्यूएशन पर लागू किया जाता है, और वे हमेशा बूलियन परिणाम आउटपुट करते हैं। जटिल सशर्त अभिव्यक्तियों का मूल्यांकन करने के लिए इन तार्किक ऑपरेटरों का अक्सर नियंत्रण संरचनाओं में उपयोग किया जाता है। आइए इनमें से प्रत्येक लॉजिकल ऑपरेटर्स को एक-एक करके समझें −

    && (तार्किक and) में and (आरक्षित कीवर्ड) की तुलना में उच्च ऑपरेटर प्राथमिकता है, लेकिन दोनों समान व्यवहार करते हैं। जब दोनों ऑपरेंड का मूल्यांकन true किया जाता है, तो आउटपुट true होता है, अन्यथा आउटपुट false होगा।

<?php var_dump( 1 && 1 ); // आउटपुट bool(true) है ?>

<?php var_dump( 1 && 0 ); // आउटपुट bool(false) है ?>

<?php var_dump( 0 && 0 ); // आउटपुट bool(false) है ?>

    || (तार्किक or) की or (आरक्षित कीवर्ड) पर उच्च ऑपरेटर प्राथमिकता है, लेकिन दोनों समान व्यवहार करते हैं। जब दो ऑपरेंड में से किसी एक का मूल्यांकन true किया जाता है, तो आउटपुट true होता है, अन्यथा आउटपुट false होगा ।

<?php var_dump( 1 || 1 ); // आउटपुट bool(true) है ?>

<?php var_dump( 1 || 0 ); // आउटपुट bool(true) है ?>

<?php var_dump( 0 || 0 ); // आउटपुट bool(false) है ?>

    xor (तार्किक xor) true आउटपुट करता है जब दो ऑपरेंडों में से किसी एक का मूल्यांकन true किया जाता है, लेकिन दोनों नहीं। जब दोनों ऑपरेंड का मूल्यांकन समान बूलियन मान के रूप में किया जाता है, तो आउटपुट false होता है ।

<?php var_dump( 1 xor 1 ); // आउटपुट bool(false) है ?>

<?php var_dump( 1 xor 0 ); // आउटपुट bool(true) है ?>

<?php var_dump( 0 xor 0 ); // आउटपुट bool(false) है ?>

    ! (तार्किक नहीं) शाब्दिक या चर/स्थिर नाम के बूलियन मूल्यांकन के विपरीत आउटपुट देता है।

<?php var_dump( ! 0 ); // आउटपुट bool(true) है ?>

<?php var_dump( ! 1 ); // आउटपुट bool(false) है ?>


Leave a Comment: