Avatar ·

PHP में `?:` (एल्विस) ऑपरेटर क्या करता है और यह कैसे काम करता है?

सभी को नमस्ते! मैंने हाल ही में PHP सीखना शुरू किया है, और मुझे एक अजीब ऑपरेटर `?:` मिला। एक प्रोजेक्ट में मैंने यह कोड देखा:\n\n```php\n$name = $_GET['name'] ?: 'अतिथि';\n```\n\nमैं सामान्य टर्नरी ऑपरेटर `? :` को समझता हूं, लेकिन यहां केवल एक प्रश्न चिह्न और कोलन है। `?` से पहले कोई शर्त नहीं है। यह कैसे काम करता है? "एल्विस ऑपरेटर" क्या है?\n\nमैंने इसे स्थानीय रूप से आज़माया:\n\n```php\n$value = 0;\n$result = $value ?: 'डिफ़ॉल्ट मान';\necho $result; // 'डिफ़ॉल्ट मान' आउटपुट करता है\n```\n\n`0` के लिए यह false की तरह क्यों काम किया? और अगर वेरिएबल परिभाषित नहीं है तो क्या होगा? क्या यह एरर देगा?\n\nकृपया एक नौसिखिए को समझाएं: किन मामलों में सामान्य टर्नरी ऑपरेटर या `??` (null coalescing) के बजाय `?:` का उपयोग करना बेहतर है? इसे कब उपयोग करना चाहिए, और कब इससे बचना चाहिए?