/ / आशुलिपि isset (), यदि नहीं, तो डिफ़ॉल्ट मान लौटाएँ - php, isset, shorthand

शॉर्टहैंड परेशान है (), यदि नहीं, तो डिफ़ॉल्ट मान लौटाएं - php, isset, shorthand

मैं PHP में इस कोड के शॉर्टहैंड संस्करण की तलाश में हूं:

$address = isset($node->field_naam_adres["und"][0]["value"]) ? $node->field_naam_adres["und"][0]["value"] : "";

मूल रूप से, मैं यह जांचना चाहता हूं कि क्या चर सेट है, और यदि नहीं, तो डिफ़ॉल्ट मान लौटाएं।

उत्तर:

उत्तर № 1 के लिए 1

https://stackoverflow.com/a/18603279/165330 :

php 7 से पहले: नहीं

$address = isset($node->field_naam_adres["und"][0]["value"]) ? $node->field_naam_adres["und"][0]["value"] : "";

php 7 से: हाँ

$address = $node->field_naam_adres["und"][0]["value"] ?? "default";


जवाब के लिए 0 № 2

यदि आप अधिक प्रत्यक्ष के बजाय सच्चाई और झूठ पर भरोसा करने से दूर हो सकते हैं isset, आप इस तरह से एक बयान में बीच का बयान छोड़ सकते हैं:

$address = $node->field_naam_adres["und"][0]["value"] ?: "";

यह इस तरह काम करता है कि अगर वापसी का मूल्यपहला कथन सत्य के रूप में मूल्यांकन करता है, उस मूल्य को वापस कर दिया जाएगा, अन्यथा फ़ॉलबैक का उपयोग किया जाएगा। आप देख सकते हैं कि विभिन्न मूल्य किस तरह से बूलियन के रूप में मूल्यांकन करेंगे यहाँ

यह ध्यान रखना महत्वपूर्ण है कि यदि आप इस पैटर्न का उपयोग करते हैं, तो आप अपने प्रारंभिक विवरण को लपेट नहीं सकते isset, empty, या किसी भी समान फ़ंक्शन। यदि आप करते हैं, तो उस विवरण से वापसी मूल्य बस एक बूलियन मान बन जाता है। तो जबकि उपरोक्त कोड या तो मूल्य वापस आ जाएगा $node->field_naam_adres["und"][0]["value"] या एक रिक्त स्ट्रिंग, निम्न कोड:

$address = isset($node->field_naam_adres["und"][0]["value"]) ?: "";

या तो लौट आएगा TRUE या एक खाली स्ट्रिंग।