दिलचस्प पोस्ट
PHP कोड से टिप्पणियों को स्वचालित रूप से निकालने का सर्वोत्तम तरीका मैं कैसे बता सकता हूं कि .NET 3.5 SP1 स्थापित है? N अक्षर के साथ एक स्ट्रिंग बनाएं किसी प्रकार के स्विच-केस का उपयोग कैसे करें? बैश जबकि वैरिएबल वैल्यू रीसेट करते हुए पढ़ने – एक पाइप लाइन में पढ़ें बिल्टिन का उपयोग करना Git-mv का उद्देश्य क्या है? कंसोल में Android Firebase Analytics कस्टम ईवेंट रिपोर्टिंग फ़्लोटिंग पॉइंट नंबर समानता मैं इस mysql mysqli को कैसे बदल सकता है? jQuery: बच्चों को .text () से बाहर करें त्वरित और आसान: पायथन के साथ ट्रेनीकॉन? सरणी संरचना के साथ संबंधित चयन बक्से को पॉप्युलेट करने के लिए जावास्क्रिप्ट और jquery का उपयोग करना एंड्रॉइड चयनकर्ता और टेक्स्ट रंग जीमेल के माध्यम से ईमेल भेजें "WaitForExit" पर लटका हुआ ProcessStartInfo? क्यूं कर?

मैं शॉर्टहैंड का उपयोग कैसे करूँ / अगर अन्य?

मैंने इस पृष्ठ के उदाहरणों का उपयोग करने की कोशिश की है, लेकिन मैं किसी भी परिणाम का उत्पादन नहीं कर सकता

यह मेरा IF स्टेटमेंट है जो काम करता है:

if (!empty($address['street2'])) echo $address['street2'].'<br />'; 

और यह मेरा कोई भी काम नहीं कर रहा शॉर्टहैंड कोड है

 $test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />'; // Also tested this (empty($address['street2'])) ? 'Yes <br />' : 'No <br />'; 

मैं क्या गलत कर रहा हूं?

अद्यतन करें
ब्रियां टिप के बाद, मुझे पता चला कि गलत क्या हुआ। परीक्षा का गूंज करना परिणाम को परिणाम देता है तो फिर मैंने निम्नलिखित की कोशिश की:

 echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />'; 

और यह एक जादू की तरह काम किया!

Solutions Collecting From Web of "मैं शॉर्टहैंड का उपयोग कैसे करूँ / अगर अन्य?"

 (condition) ? /* value to return if condition is true */ : /* value to return if condition is false */ ; 

सिंटैक्स "शॉर्टहैंड अगर" ऑपरेटर नहीं है (जो को सशर्त ऑपरेटर कहा जाता है) क्योंकि आप उसी तरीके से कोड निष्पादित नहीं कर सकते हैं जैसे कि आपने किया था:

 if (condition) { /* condition is true, do something like echo */ } else { /* condition is false, do something else */ } 

आपके उदाहरण में, आप echo स्टेटमेंट निष्पादित कर रहे हैं जब $address रिक्त नहीं है आप सशर्त ऑपरेटर के साथ ऐसा ही नहीं कर सकते। आप हालांकि क्या कर सकते हैं, सशर्त ऑपरेटर का परिणाम echo है:

 echo empty($address['street2']) ? "Street2 is empty!" : $address['street2']; 

और यह प्रदर्शित होगा "सड़क खाली है!" अगर यह खाली है, अन्यथा यह सड़क 2 पते प्रदर्शित करेगा।

मूल सही / गलत घोषणा

 $is_admin = ($user['permissions'] == 'admin' ? true : false); 

सशर्त स्वागत संदेश

 echo 'Welcome '.($user['is_logged_in'] ? $user['first_name'] : 'Guest').'!'; 

सशर्त आइटम संदेश

 echo 'Your cart contains '.$num_items.' item'.($num_items != 1 ? 's' : '').'.'; 

टर्नरी ऑपरेटर सिर्फ एक लघुकथ है और अगर / दूसरे ब्लॉक आपके कामकाजी कोड में कोई अन्य स्थिति नहीं है, इसलिए इसके लिए उपयुक्त नहीं है।

निम्न उदाहरण काम करेगा:

 echo empty($address['street2']) ? 'empty' : 'not empty'; 

PHP 7+

पीपीएडी 7 के अनुसार, यह काम केवल अशक्त सहकारी ऑपरेटर का उपयोग करके किया जा सकता है:

echo $address['street2'] ?? 'Empty';

सशर्त स्वागत संदेश

 echo 'Welcome '.($user['is_logged_in'] ? $user['first_name'] : 'Guest').'!'; 

नेस्टेड PHP शॉर्टहैंड

 echo 'Your score is: '.($score > 10 ? ($age > 10 ? 'Average' : 'Exceptional') : ($age > 10 ? 'Horrible' : 'Average') ); 

ध्यान दें कि नेस्टेड सशर्त ऑपरेटरों का उपयोग करते समय, आप संभावित समस्याओं से बचने के लिए कोष्ठक का उपयोग करना चाह सकते हैं !

ऐसा लगता है कि PHP उसी तरह काम नहीं करता जितना कम से कम जावास्क्रिप्ट या सी #

 $score = 15; $age = 5; // The following will return "Exceptional" echo 'Your score is: ' . ($score > 10 ? ($age > 10 ? 'Average' : 'Exceptional') : ($age > 10 ? 'Horrible' : 'Average')); // The following will return "Horrible" echo 'Your score is: ' . ($score > 10 ? $age > 10 ? 'Average' : 'Exceptional' : $age > 10 ? 'Horrible' : 'Average'); 

दोनों कोड में जावास्क्रिप्ट और सी # वापसी में एक ही कोड "असाधारण" है

दूसरे मामले में, PHP क्या करता है (या कम से कम यह कि मैं समझता हूं):

  1. $score > 10 ? हाँ
  2. $age > 10 ? नहीं, तो वर्तमान $age > 10 ? 'Average' : 'Exceptional' $age > 10 ? 'Average' : 'Exceptional' रिटर्न 'असाधारण'
  3. फिर, पूरे बयान को रोकना और 'असाधारण' लौटने की बजाय, यह अगले वक्तव्य का मूल्यांकन जारी रखता है
  4. अगले बयान 'Exceptional' ? 'Horrible' : 'Average' हो जाता है 'Exceptional' ? 'Horrible' : 'Average' 'Exceptional' ? 'Horrible' : 'Average' जो 'भयानक' देता है, जैसा कि 'असाधारण' सच है

प्रलेखन से: http://php.net/manual/en/language.operators.comparison.php

यह अनुशंसा की जाती है कि आप टर्नेटरी अभिव्यक्तियों के "स्टैकिंग" से बचें। एक ही वक्तव्य में एक से अधिक त्रिगुट ऑपरेटर का प्रयोग करते समय PHP का व्यवहार गैर-स्पष्ट है।

आप <?=?> लिए echo बजाय इसे कम कर सकते हैं

<?=(empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />'?>

यह विशेष रूप से उपयोगी है, जब आप निर्धारित करना चाहते हैं, एक नवबार के अंदर, चाहे मेनू विकल्प को पहले से ही विज़िट किया गया क्लिक किया जाए या नहीं:

<li<?=($basename=='index.php' ? ' class="active"' : '')?>><a href="index.php">Home</a></li>

मुझे लगता है कि आपने ब्रैकेट को गलत तरीके से इस्तेमाल किया था। इसे इस्तेमाल करे:

 $test = (empty($address['street2']) ? 'Yes <br />' : 'No <br />'); 

मुझे लगता है कि यह काम करना चाहिए, आप इसका उपयोग भी कर सकते हैं:

 echo (empty($address['street2']) ? 'Yes <br />' : 'No <br />');