यह बाएं ऑपरेंड का मूल्यांकन करता है यदि बाएं ऑपरेंड सत्य है , और सही ऑपरेंड अन्यथा।
स्यूडोकोड में,
foo = bar ?: baz;
लगभग हल करता है
foo = bar ? bar : baz;
या
if (bar) {
foo = bar;
} else {
foo = baz;
}
इस अंतर के साथ कि bar
केवल एक बार मूल्यांकन किया जाएगा।
आप अपने द्वारा foo
पोस्ट किए गए कोड उदाहरण में दिखाए गए अनुसार "सेल्फ-चेक" करने के लिए भी इसका उपयोग कर सकते हैं :
foo = foo ?: bar;
यह आवंटित करेगा bar
करने के लिए foo
करता है, तो foo
नल या falsey है, वरना यह छोड़ देंगे foo
अपरिवर्तित।
कुछ और उदाहरण:
<?php
var_dump(5 ?: 0); // 5
var_dump(false ?: 0); // 0
var_dump(null ?: 'foo'); // 'foo'
var_dump(true ?: 123); // true
var_dump('rock' ?: 'roll'); // 'rock'
?>
वैसे, इसे एल्विस ऑपरेटर कहा जाता है ।
null
कुछ भी है। बस '