2013-01-25 11 views
9

मैंने थोड़ी देर के लिए टर्नरी ऑपरेटरों का उपयोग किया है और यह सोच रहा था कि else क्लॉज के बिना फ़ंक्शन कॉल करने का कोई तरीका था या नहीं। उदाहरण: अब एक त्रिगुट कैसे 'पास से' शेष खंड आप कर सकते हैं अगर हालत झूठी रिटर्न के लिएटर्नरी ऑपरेटर्स। एक तरफा कार्रवाई के लिए संभव है?

if(isset($foo)){ 
    callFunction(); 
} 

:

if(isset($foo)){ 
    callFunction(); 
}else{ 

} 

अब स्पष्ट रूप से हम बाहर else छोड़ बनाने के लिए कर सकते हैं?

(isset($foo))?callFunction():'do nothing!!'; 

या तो कोई रहस्य या संभव नहीं है?

+3

बस इसे खाली छोड़ दें –

+1

अब मुझे बेवकूफ महसूस हो गया है ... lol – sourRaspberri

+0

आपको यह पूछने की ज़रूरत नहीं है, आप इसे आजमा सकते हैं, यह छोटा है। – markus

उत्तर

18

लघु सर्किट

isset($foo) and callFunction(); 

हालत रिवर्स और दूसरा तर्क

!isset($foo) ?: callFunction(); 

छोड़ देते हैं या सिर्फ लौटने " कुछ "

isset($foo) ? callFunction() : null; 

हालांकि, टर्नरी ऑपरेटरों को सशर्त रूप से दो संभावित मूल्यों में से एक मूल्य लाने के लिए डिज़ाइन किया गया है। आप एक फ़ंक्शन को कॉल कर रहे हैं, इस प्रकार ऐसा लगता है कि आप वास्तव में if खोज रहे हैं और वर्णों को सहेजने के लिए ?: का दुरुपयोग कर रहे हैं?

if (isset($foo)) callFunction(); 
1

तुम क्यों इस मामले में एक त्रिगुट ऑपरेटर का प्रयोग करेंगे? त्रिगुट ऑपरेटर जब दो संभव परिदृश्यों देखते हैं और इस मामले में जहां आप केवल if मामले के बारे में परवाह में ज्यादा मतलब नहीं है इस्तेमाल किया जा करने के लिए है। आप करने के लिए है यदि यह तथापि, बस मामले को रिक्त छोड़ देते: (cond)?do_something():;

+0

वैसे ऊपर एक उदाहरण है। मैं बस बड़े परिचालनों के लिए सोच रहा था। – sourRaspberri

+0

@ बैनेटो बड़ा ऑपरेशन? यह वास्तव में लगता है, कि आप त्रिगुट ऑपरेटर का दुरुपयोग: एक्स – KingCrunch

0

कोलन के बाद शून्य रखें। इसके अलावा, यह सोचते हैं आप पर्ल पर हैं, तो आप बेहतर 'स्थिति और कार्रवाई()', 'एक्शन() अगर हालत' मुहावरे का उपयोग कर सकते हैं।

+0

टैग वह पीएचपी का उपयोग करता है के बारे में;) हालांकि, अभिव्यक्ति की शॉर्ट cicruiting PHP में काम करता है भी '$ शर्त और कार्रवाई();' नहीं, बल्कि अन्य अंकन। यहाँ आप कम से कम ब्रेसिज़ छोड़ सकते हैं, लेकिन सभी thats 'अगर ($ शर्त) कार्रवाई();' – KingCrunch

संबंधित मुद्दे