questions अगर PHP में एक लाइन में दूसरे वेरिएबल का उपयोग किया जाता है




php interview questions (9)

आप echo $test ?: 'hello'; कर सकते हैं echo $test ?: 'hello';

यह $test प्रतिध्वनित होगा यदि यह सच है और 'hello' अन्यथा।

ध्यान दें कि यह एक नोटिस या सख्त त्रुटि है यदि $test सेट नहीं है लेकिन ...

यह एक समस्या नहीं होनी चाहिए क्योंकि अधिकांश सर्वर इन त्रुटियों को अनदेखा करने के लिए सेट होते हैं। अधिकांश चौखटे में कोड होता है जो इन त्रुटियों को ट्रिगर करता है।

क्या PHP में जावास्क्रिप्ट के समान कुछ है:

alert(test || 'Hello');

इसलिए, जब परीक्षण अपरिभाषित या अशक्त होगा तो हम हैलो देखेंगे, अन्यथा - हम परीक्षण के मूल्य को देखेंगे।

मैं PHP में इसी तरह की वाक्य रचना की कोशिश की, लेकिन यह सही काम नहीं कर रहा है ... इसके अलावा मुझे पता नहीं है कि इस समस्या को कैसे गूगल किया जाए ..

धन्यवाद

संपादित करें

मुझे संभवतः जोड़ना चाहिए कि मैं इसे एक सरणी के अंदर उपयोग करना चाहता था:

$arr = array($one || 'one?', $two || 'two?'); //This is wrong

लेकिन वास्तव में, मैं इनलाइन का उपयोग कर सकता हूं '? : 'अगर यहाँ भी कथन, धन्यवाद।

$arr = array(is_null($one) ? "one?" : $one, is_null($two) ? "two ?" : $two); //OK

Answer #1

यदि आप इस तरह से एक सरणी बनाना चाहते हैं, तो ऐसा करने के लिए array_map अधिक संक्षिप्त तरीका प्रदान करता है (सरणी में तत्वों की संख्या के आधार पर):

function defined_map($value, $default) {
    return (!isset($value) || is_null($value)) ? $default : $value;
    // or return $value ? $default : $value;
}

$values = array($one, $two);
$defaults = array('one', 'two');

$values = array_map('defined_map', $values, $defaults);

बस सुनिश्चित करें कि आप जानते हैं कि कौन से तत्व false मूल्यांकन false ताकि आप सही परीक्षण लागू कर सकें।


Answer #2
echo (!$test) ? 'hello' : $test;

या आप थोड़ा और मजबूत हो सकते हैं और यह कर सकते हैं

echo (!isset($test) || is_null($test)) ? 'hello' : $test; 

Answer #3

मुझे हाल ही में एक ही समस्या थी। इस तरह से मैंने इसे हल किया है:

<?php if (empty($row['test'])) {
                    echo "Not Provided";} 
                        else {
                    echo $row['test'];}?></h5></span></span>
              </div>

डेटाबेस में आपका मूल्य चर $ test..so में है यदि $ परीक्षण पंक्ति खाली है तो गूंज उपलब्ध नहीं है


Answer #4

PHP 7 के बाद से आप एक कोलेसस ऑपरेटर नाम की किसी चीज़ का उपयोग कर सकते हैं, जो कि वास्तव में E_NOTICE के बिना आपको क्या चाहिए ?: ट्रिगर।

इसका उपयोग करने के लिए आप का उपयोग करें ?? जो जाँच करेगा कि बाईं ओर का मान सेट है या नहीं।

$arr = array($one ?? 'one?', $two ?? 'two?'); 

Answer #5

मुझे बहुत आश्चर्य है कि यह अन्य उत्तरों में सुझाया नहीं गया है:

echo isset($test) ? $test : 'hello';

यदि $var मौजूद नहीं है या शून्य पर सेट है , तो डॉक्स से isset($var) झूठी हो जाएगी।

@Yamiko द्वारा वर्णित PHP 7 के बाद से अशक्त कोलेसस ऑपरेटर, ऊपर के लिए एक सिंटैक्स शॉर्टकट है।

इस मामले में:

echo $test ?? 'hello'; 

Answer #6

Null PHP में गलत है, इसलिए आप ternary का उपयोग कर सकते हैं:

alert($test ? $test : 'Hello');

संपादित करें:

यह एक खाली स्ट्रिंग के लिए भी है, क्योंकि टर्नरी '==' के बजाय '===' समानता का उपयोग करता है

और खाली या अशक्त स्ट्रिंग गलत है चाहे '===' या '==' ऑपरेटर का उपयोग कर। मुझे वास्तव में पहले अपने उत्तरों का परीक्षण करना चाहिए।


Answer #7
alert((test == null || test == undefined)?'hello':test);

Answer #8

एक बेहतर तरीका हो सकता है, लेकिन यह पहली चीज है जो मेरे दिमाग में आई:

 echo (!$test) ? "Hello" : $test;




php