2012-03-01 9 views
6

यदि कोई निश्चित चर सत्य है, तो मुझे स्ट्रिंग में डेटा जोड़ने की आवश्यकता है, यदि नहीं, तो मुझे कुछ भी जोड़ने की आवश्यकता नहीं है। वर्तमान में मैं कर रहा हूं:क्या आपको एक टर्नरी ऑपरेटर PHP में झूठा मान शामिल करना है?

$string = (condition()) ? 'something'.$string.'something' : $string; 

क्या एक टर्नरी ऑपरेटर में झूठी विकल्प जोड़ने को छोड़ने का कोई तरीका है? यदि स्थिति गलत है तो $ string = $ स्ट्रिंग कहने में अपर्याप्त लगता है।

उत्तर

3

आप इसे छोड़ नहीं सकते हैं। आप एक एक पंक्ति के रूप में if हालत हालांकि फिर से लिख सकते हैं:

if (condition()) $string = 'something'.$string.'something'; 
+0

यह था मेरी अगली पसंद है, लेकिन यह उम्मीद कर रही थी किया जा सकता था। पुष्टि के लिए धन्यवाद। – Ayub

0

नहीं, इसे छोड़ने का कोई तरीका नहीं है। आप गलत सा छोड़ना चाहते हैं, तो वापस if विधि पर जाएँ:

if (condition()) $string = 'something' . $string . 'something'; 

त्रिगुट विधि बस एक छोटी हाथ if बयान वैसे भी है। यदि आप if कथन को पठनीयता (जैसे उपरोक्त उदाहरण में) के बलिदान के बिना कम कर सकते हैं, तो आपको इसे विचार करना चाहिए।

लेकिन, ईमानदारी से, मैं भी यह अधिक पठनीय बनाने के लिए स्वरूपित चाहते हैं कि:

if (condition()) 
    $string = 'something' . $string . 'something'; 

जब तक आप पर नजर रखने के ऊंचाई की सख्त कम कर रहे हैं, कि एक नज़र में समझने के लिए आसान हो जाएगा :-)

1

हाँ, आप के लिए है। कार्य के रूप में टर्नरी ऑपरेटर के बारे में सोचें। क्या आप अगर आप कुछ इस तरह किया था व्यवहार होने की अपेक्षा करेंगे, लेकिन अगर condition()false के लिए मूल्यांकन एक काम बनाने के लिए नहीं करना चाहता था:

$string = ternary(condition(), $yesValue, $noValue); 

कोई रास्ता नहीं है कि आप चर में काम निरस्त कर सकते है $string यदि condition() गलत का मूल्यांकन करता है।

-1

नहीं। यह एक टर्नरी का बिंदु है। यदि आप झूठे मूल्य नहीं चाहते हैं, तो क्यों न केवल शर्त() को आपके द्वारा आवश्यक मूल्य वापस कर दें?

कुछ की तरह:

$string = condition($string); 

function condition($string){ 
    if($string == 'whatever') 
    { 
     $string = 'something'.$string.'something'; 
    } 

    return $string; 
} 

मैं देख सकता हूँ हर किसी को पहले से ही यह करने के लिए मुझे हरा, इसलिए यहाँ त्रिगुट के लिये दस्तावेज है:

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

+0

क्योंकि वह केवल यह दिखाना चाहता है कि क्या यह सच है और गलत होने पर कुछ भी नहीं। –

+0

@hanoncs - तब आपने पृथ्वी पर क्या सुझाव दिया था? यदि वह झूठी हैंडलिंग को परिभाषित नहीं करना चाहता है तो एक टर्नरी सादा और सरल का उपयोग न करें। उनके प्रश्न में कोई "शायद" नहीं है। यह स्पष्ट है कि वह केवल सच्चाई में शामिल होना चाहता है लेकिन सोचता है कि स्वयं पुन: घोषणा झूठी के लिए अपमानजनक है। तो अगर यह कोई चिंता है, तो वह किसी भी तरह से जांचने के लिए एक फ़ंक्शन चला रहा है, तो क्यों न केवल $ string = condition() कहें और उस फ़ंक्शन को स्ट्रिंग के अंतिम परिणाम दें? –

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