मैं PHP में इस कोड के शॉर्टहैंड संस्करण की तलाश में हूं:
$address = isset($node->field_naam_adres["und"][0]["value"]) ? $node->field_naam_adres["und"][0]["value"] : "";
मूल रूप से, मैं यह जांचना चाहता हूं कि क्या चर सेट है, और यदि नहीं, तो डिफ़ॉल्ट मान लौटाएं।
उत्तर:
उत्तर № 1 के लिए 1https://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
या एक खाली स्ट्रिंग।