PHP-और/या कीवर्ड




conditional (4)

हां, वे तार्किक रूप से वही हैं। (मुझे विश्वास है कि ज़ेंड कोडिंग मानकों में पसंदीदा विकल्प "&&" और "||" हैं, लेकिन मुझे इस पर कोई विशिष्ट जानकारी नहीं मिल रही है, इसलिए यह सब एक सपना हो सकता है या कुछ।)

ने कहा कि:

  1. "&&" और "||" "AND" और "OR" की तुलना में http://www.php.net/manual/en/language.operators.precedence.php है (कभी भी प्रासंगिक होने की संभावना नहीं है, लेकिन आप कभी नहीं जानते)।

  2. कई अन्य भाषाएं टेक्स्ट समकक्षों की बजाय "&&" और "||" का उपयोग करती हैं, इसलिए इसके साथ जाने का विचार हो सकता है।

  3. जब तक आप ऑपरेटरों के अपने चुने हुए सेट का लगातार उपयोग करते हैं, तब तक यह वास्तव में कोई फर्क नहीं पड़ता।

"और" जैसा ही है, और है || PHP में "या" जैसा ही है?

मैंने कुछ परीक्षण किए हैं, और ऐसा लगता है कि वे वही व्यवहार करते हैं। क्या कोई अंतर है?

यदि नहीं, तो क्या कोई अन्य PHP संकेत हैं जिनमें शब्द समकक्ष हैं और क्या आपको लगता है कि यह कोड को पढ़ने में आसान बनाता है?


अंतर प्राथमिकता पर है । लेकिन न केवल एक दूसरे के साथ तुलना की!

ज्यादातर मामलों में आपको यह बुरा नहीं लगेगा, लेकिन विशिष्ट मामले हैं जब आपको एक कदम पीछे लेना और बड़ी तस्वीर देखना है। इसे ले लो, उदाहरण के लिए:

// The result of the expression (true && false) is assigned to $g
// Acts like: ($g = (true && false))
$g = true && false;

// The constant true is assigned to $h before the "and" operation occurs
// Acts like: (($h = true) and false)
$h = true and false;

var_dump($g, $h);

यह क्रमशः उत्पादन करेगा:

bool(false)
bool(true)

दूसरे शब्दों में, && की तुलना में अधिक वरीयता है = , जिसकी तुलना में अधिक प्राथमिकता है and जैसा कि http://php.net/manual/en/language.operators.precedence.php में बताया गया है। (यह अन्य उत्तरों में उल्लिखित है, लेकिन मुझे लगता है कि यह विस्तार से लायक है, क्योंकि एक दुरुपयोग तार्किक त्रुटियों का कारण बन सकता है)

मुझे उम्मीद है कि यह आपकी मदद कर सकता है। आप http://php.net/manual/en/language.operators.logical.php पर और अधिक पा सकते हैं


and और && और || तुलना में अधिक निम्न प्राथमिकता है । अधिक सटीक और && और || असाइनमेंट ऑपरेटर ( = ) की तुलना में अधिक प्राथमिकता है जबकि and कम है।

http://www.php.net/manual/en/language.operators.precedence.php

आम तौर पर इससे कोई फर्क नहीं पड़ता है, लेकिन ऐसे मामले हैं जब इस अंतर के बारे में नहीं जानते कुछ अप्रत्याशित व्यवहार हो सकते हैं। यहां उदाहरण देखें:

http://php.net/manual/en/language.operators.logical.php


मुझे परेशान करता है:

echo (false and false ? true : true);
// (empty/false)

आपको लगता है कि "1" (सत्य) का केवल संभावित आउटपुट है क्योंकि कोई ऐसा मामला नहीं है जो झूठी आउटपुट कर सके ... ... लेकिन यह "" (गलत) होगा।

इस मामले में ऑपरेटर के रूप में && का उपयोग कम से कम मेरी अपेक्षाओं को प्रमाणित करता है:

echo (false && false ? true : true);
// 1

तो, कुछ मामलों में उपयोग महत्वपूर्ण मायने रखता है।





conditional