जवाबों:
से डॉक्स :
Coalesce बराबर या ?? = ऑपरेटर एक असाइनमेंट ऑपरेटर है। यदि बायाँ पैरामीटर अशक्त है, तो बाईं ओर दाईं पैरामिटर का मान असाइन करें। यदि मान शून्य नहीं है, तो कुछ भी नहीं किया जाता है।
उदाहरण:
// The folloving lines are doing the same
$this->request->data['comments']['user_id'] = $this->request->data['comments']['user_id'] ?? 'value';
// Instead of repeating variables with long names, the equal coalesce operator is used
$this->request->data['comments']['user_id'] ??= 'value';
तो यह मूल रूप से केवल एक आशुलिपि है अगर यह पहले असाइन नहीं किया गया है तो एक मान असाइन करें।
में पीएचपी 7 इस मूल रूप से जारी किया गया था, एक डेवलपर एक त्रिगुट ऑपरेटर के साथ संयुक्त एक isset () चेक सरल करने के लिए अनुमति देता है। उदाहरण के लिए, PHP 7 से पहले, हमारे पास यह कोड हो सकता है:
$data['username'] = (isset($data['username']) ? $data['username'] : 'guest');
जब PHP 7 जारी किया गया था, तो हमें इसे लिखने की क्षमता मिली:
$data['username'] = $data['username'] ?? 'guest';
अब, हालांकि, जब PHP 7.4 जारी किया जाता है, तो इसे और भी सरल बनाया जा सकता है:
$data['username'] ??= 'guest';
एक मामला जहां यह काम नहीं करता है यदि आप किसी भिन्न चर के लिए मान निर्दिष्ट करना चाहते हैं, तो आप इस नए विकल्प का उपयोग करने में असमर्थ होंगे। इस प्रकार, जबकि इसका स्वागत किया जाता है, कुछ सीमित उपयोग के मामले हो सकते हैं।
अशक्त coalescing असाइनमेंट ऑपरेटर null coalescing संचालक के परिणाम को असाइन करने का एक संक्षिप्त तरीका है।
आधिकारिक रिलीज़ नोट्स से एक उदाहरण :
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
अशक्त काम संचालक संचालक का पीछा करना:
$a = null;
$b = null;
$c = 'c';
$a ??= $b ??= $c;
print $b; // c
print $a; // c
The folloving lines...