टीएल; डीआर - नहीं, उस अभिव्यक्ति को कोई छोटा नहीं बनाया जा सकता है।
आप जो चाहते हैं वह संक्षिप्त टर्नरी अभिव्यक्ति के लिए एक अंतर्निहित isset()
निष्पादित करने के लिए है। इस पर mailing list पर चर्चा की गई है और ifsetor
RFC बनाया गया है जो अवधारणा को भी शामिल करता है।
// PROPOSAL ONLY, DOES NOT WORK
$v = $v ?? 'default value';
असाइन 'default value'
अगर $v
अपरिभाषित है:
के बाद से छोटा त्रिगुट ऑपरेटर पहले से ही उपरोक्त चर्चा के समय में ही अस्तित्व में, कुछ इस तरह proposed किसी गैर-मौजूद ऑपरेटर ??
का उपयोग कर रहा था।
हालांकि, इस तरह से कुछ भी मुख्य भाषा में आज तक लागू नहीं किया गया है। तब तक, जो आपने लिखा है उसे कम नहीं किया जा सकता है।
यह भयानक निर्माण में कम है, लेकिन ध्यान दें कि यह नहीं एक ही क्योंकि यह डिफ़ॉल्ट मान प्रदान करती है, तो चर मौजूद है, लेकिन मूल्यांकन करता false
रहे हैं:
// DO NOT USE
$v = @$v ?: 'default value';
स्रोत
2012-11-22 07:43:29
क्या होगा यदि '$ v' पहले से ही सेट किया गया है और यह' है '' ' या '0' या' शून्य 'या' झूठी'? – Carlos
मैं देखता हूं। लेकिन मुझे नहीं लगता कि यह एक अच्छा दृष्टिकोण है ... – Carlos
@jackflash इसलिए मेरा "भयानक निर्माण" का उल्लेख –